EJB Entity mit List Problem

undertaker

Mitglied
Hallo,

ich habe ein Problem mit einer Liste in einer Entity. Und zwar hält diese einfach keine Objekte, wenn ich mit add() welche hinzufüge.

Ich habe also eine Entity Airline die so aussieht:

Java:
@Entity(name = "airline")
public class Airline implements Serializable
{
	private static final long serialVersionUID = 1L;
	
	private List<Plane> planeList;
	private String name;
	private int id;

	public Airline() {}
	
	/**
	 * Constructor
	 * 
	 * @param name		Name of the airline
	 */
	public Airline(String name) 
	{
		this.name = name;
		planeList = new ArrayList<Plane>();
	}
	
	//...
	
	@OneToMany(mappedBy="airline", fetch=FetchType.EAGER)
	public List<Plane> getPlaneList()
	{
		return planeList;
	}

	public void setPlaneList(List<Plane> planeList)
	{
		this.planeList = planeList;
	}
        //....
}

Ein Session Interface:
Java:
@Remote
public interface AirlineSession 
{
	public int createEntity (String name);
	
	public Airline getEntity (int id);

	public void updateEntity (int id, String name);
	
	public void addPlane(Plane plane, int id);

	public void removeEntity (int id);
}

Und das Session EJB:
Java:
@Stateless
public class AirlineSessionEJB implements AirlineSession
{
	@javax.persistence.PersistenceContext (unitName = "airport")
    private EntityManager em;	
	
       //...

	@Override
	public int createEntity(String name)
	{
		Airline airline = new Airline(name);
        em.persist (airline);
        System.out.println("Entity Airline.id=" + airline.getId() +
        		" " + name + " created.");
        return airline.getId();
	}

	@Override
	public void addPlane(Plane plane, int id) 
	{
		Airline airline = em.find(Airline.class, id);
		
		if (airline != null)
		{
			List<Plane> tmp = airline.getPlaneList();
			tmp.add(plane);
			airline.setPlaneList(tmp);
			em.persist(airline);
			
			System.out.println("Plane.id " + plane.getId() + " to Airline.id="
					+ id + " added." + airline.getPlaneList());
		}
		
	}
        //...
}

Im Client mache ich dann folgendes:
Java:
public class PlaneClient
{
	public PlaneClient() 
	{
		try 
		{
			InitialContext ctx = new InitialContext ();

			
			PlaneSession smp = (PlaneSession)ctx.lookup ("Airport/PlaneSessionEJB/remote");
			PlaneTypeSession pts = (PlaneTypeSession) ctx.lookup("Airport/PlaneTypeSessionEJB/remote");
	        AirlineSession airSession = (AirlineSession) ctx.lookup("Airport/AirlineSessionEJB/remote");    
			
	        int x = pts.createEntity("Airbus");
	        int i = smp.createEntity("Plane1", x);
	        int airlineId = airSession.createEntity("Lufthansa2");
	            
	        System.out.println("ID="+i+" "+smp.getEntity(i).getDescription());
	        System.out.println (smp.getEntity(i).getPlaneType().getName());

// Hier wird das FLugzeug hinzugefügt
	        airSession.addPlane(smp.getEntity(i), airlineId);

// Hier kriege ich eine IndexOutOfBounds-Exception wenn ich das FLugzeug aus der liste holen will
	        System.out.println("Fluggesellschaft " 
	        		+ airSession.getEntity(airlineId).getName()
	        		+ " mit Flugzeug " + airSession.getEntity(airlineId).getPlaneList().get(0));
	        
	        airSession.removeEntity(airlineId);
	        smp.removeEntity(i);
	        pts.removeEntity(x);
		}
		catch (Exception e) 
		{
	            e.printStackTrace();
	    }
	}
	
	public static void main(String args[])
	{
		new PlaneClient();
	}
}

Ich verstehe einfach nicht warum in der Liste kein Objekt ist. In der EJB-Klasse wird das FLugzeug das ich hinzufüge abgelegt und ist auch in der Liste, nur im CLient ist es nicht mehr da... :( ich hoffe man versteht meine Frage und jemand hat lust es sich mal anzuschauen. Falls mehr code benötigt wird kann ich diesen natrlich noch posten.
 

imillitay

Mitglied
Zeig doch mal die getEntity(..)-Methode deiner SessionBean. Ich nehme mal an, dass du dir die Entity aus deiner Datenbank o.Ä. ziehst - kannst du da mal manuell nachschauen, ob die Assoziation zumindest dort korrekt gesetzt wird?
 

undertaker

Mitglied
meine getEntity sieht so aus:

Java:
        @PersistenceContext (unitName = "airport")
        private EntityManager em;

        @Override
	public Airline getEntity(int id)
	{
		Airline airline = em.find(Airline.class, id); 
		
		return airline;
	}

Das Problem ist jetzt auch scheinbar gelöst, da ich vergessen habe, bei einem "Plane" die "Airline" zu setzten. Wenn ich das mache wird ein Flugzeug auch in der Liste der Fluggesellschaft abgelegt. Ganz dahinter gestiegen bin ich noch nicht, aber wenn man alle member setzt, funktioniert es.

Damit man es vielleicht besser nachvollziehen kann hier nochmal ein ausschnitt aus der Plane-Entity und Airline-Entity:

Plane:
Java:
@Entity(name = "plane")
public class Plane implements Serializable 
{
	private static final long serialVersionUID = 1L;

	private int id;
	private String description;
	private Airline airline;
	private String planeType;
        
        //...

        @ManyToOne
	public Airline getAirline()
	{
		return airline;
	}
}

Airline:
Java:
@Entity(name = "airline")
public class Airline implements Serializable
{
	private static final long serialVersionUID = 1L;
	
	private List<Plane> planeList;
	private String name;
	private int id;

        //...

        @OneToMany(mappedBy="airline", fetch=FetchType.EAGER)
	@JoinTable(name="plane")
	public List<Plane> getPlaneList()
	{
		return planeList;
	}
}

Ich habe mir also zuert eine Entity Airline erstellt, danach eine Entity Plane -> dort habe ich die Airline nicht gesetzt und deswegen konnte ich die erstellte Plane-Entity nicht zur Liste in der Airline-Entity hinzufügen.

Verstehe ich das halbwegs richtig? :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
bueseb84 Spring Boot Entity mit Liste Allgemeine Java-Themen 4
P Entity Objekt Methoden vs Service methoden Allgemeine Java-Themen 2
S JPA und Entity-Klassen: Wert ungültig Allgemeine Java-Themen 6
T JPA Entity im Client-Server-Umfeld Allgemeine Java-Themen 19
G Entity Objekt Allgemeine Java-Themen 2
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
Rakshan Reading through list of objects Allgemeine Java-Themen 8
L Unterschied zwischen List und LinkedList implementierung? Allgemeine Java-Themen 15
Monokuma String List nach Zahlen und Worten sortieren Allgemeine Java-Themen 9
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
W Collections Suche etwas Sorted-List-Artiges...hat jemand eine Idee? Allgemeine Java-Themen 13
M List -Tableview-Javafx-Vererbung Allgemeine Java-Themen 35
R convert 2d array list to 2d array Allgemeine Java-Themen 1
B List<Integer> ist List<Double> ? Allgemeine Java-Themen 6
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
G Neues Objekt aus List<JsonObject> mit Stream Allgemeine Java-Themen 4
J Array-List Bubble-Sort Allgemeine Java-Themen 12
U javax.mail.Folder.list() zeigt nicht alle Ordner Allgemeine Java-Themen 5
Hacer List<? super E> Allgemeine Java-Themen 10
C Objekte in Array List speichern? Allgemeine Java-Themen 1
P List<Type> Konvertieren in List<List<Type>> Allgemeine Java-Themen 3
P Sorted List o.ä. Allgemeine Java-Themen 2
M Erste Schritte List<> unbekannt?? Allgemeine Java-Themen 8
M List casting error Allgemeine Java-Themen 3
Messoras List zeigt nur das letzte Element an Allgemeine Java-Themen 14
K Collections Collection<> mit List<String> abgleichen? Allgemeine Java-Themen 10
A List<String> auf doppelte Einträge überprüfen Allgemeine Java-Themen 4
? Objects aus List aussortieren Allgemeine Java-Themen 9
B List Pointer zurücksetzen Allgemeine Java-Themen 10
J Elemente zu einer List hinzufügen? Allgemeine Java-Themen 9
T Liste mit GregorianCalendar-Objekten in List einlesen, mit Collection sortieren und ausgeben Allgemeine Java-Themen 3
N List auf null prüfen Allgemeine Java-Themen 2
G List<Person> sortieren Allgemeine Java-Themen 6
A Probleme mit ConcurrentHashMap und List Allgemeine Java-Themen 3
C Komisches Verhalten zwischen Set und List bei contains Allgemeine Java-Themen 6
N Inverted index / inverted list Allgemeine Java-Themen 2
X Eine Map mit X -> List<Y>? Allgemeine Java-Themen 8
Shoox HashMaps in List? Allgemeine Java-Themen 3
B Frage zu Interface und List Allgemeine Java-Themen 4
H List wird nicht richtig gefüllt Allgemeine Java-Themen 6
Z aus private List<???> list eintrag löschen Allgemeine Java-Themen 4
L List <Hauser> in Combobox einfügen Allgemeine Java-Themen 5
isowiz java.util.List: Sortierung nicht nach bestimmten Attribut? Allgemeine Java-Themen 4
K von List getSelected auf ResultSet Datenbank löschen Allgemeine Java-Themen 2
E Speicher frei machen (List) Allgemeine Java-Themen 9
K List in Teillisten zerlegen Allgemeine Java-Themen 2
B Probleme mit awt.List in Chatprogramm Allgemeine Java-Themen 14
MQue List<String> aus List<Object> generieren Allgemeine Java-Themen 2
B List = ArrayList ? Allgemeine Java-Themen 12
N List<? implements "Interface"> geht nicht Allgemeine Java-Themen 13
G Byte- List mit einem Iterator durchlaufen Allgemeine Java-Themen 5
G Linked List zwischen zwei Threds übergeben Allgemeine Java-Themen 11
S List<Double> oder Double[] in double[] zu konvertieren Allgemeine Java-Themen 6
G Methode akzeptiert List<ParentClass> aber nicht List&l Allgemeine Java-Themen 2
G List- Einträge löschen Allgemeine Java-Themen 3
G java.util.List klonen Allgemeine Java-Themen 17
S Collections.binarySearch(list,"a") Allgemeine Java-Themen 7
K Bound mismatch: The generic method sort(List<T>) of ty Allgemeine Java-Themen 4
K "Too many open files" bei Property List Allgemeine Java-Themen 5
P List in Hashmap schreiben Allgemeine Java-Themen 5
J linked list per reverse() "umdrehen" Allgemeine Java-Themen 11
P java.util.List - Typ überschreiben Allgemeine Java-Themen 9
G Arraylist statt List - Sehr schlimm? Allgemeine Java-Themen 8
G List mit selbstdefinierten Objekten sortieren Allgemeine Java-Themen 2
M Datenstrukrue, List<Map<Integer, Map<String, . Allgemeine Java-Themen 2
F List<String> zu byte[] Allgemeine Java-Themen 7
G Map oder List mit festgelegter Reihenfolge Allgemeine Java-Themen 4
M Pendant zu list() und array() aus PHP in Java gegeben? Allgemeine Java-Themen 5
J Problem mit List Allgemeine Java-Themen 2
byte Generic Type einer List zur Laufzeit rausfinden? Allgemeine Java-Themen 4
S Generics List Allgemeine Java-Themen 3
G Inhalt einer Textdatei in eine AWT List schreiben Allgemeine Java-Themen 3
C access control list in java Allgemeine Java-Themen 7
T List.isEmpty() klappt nicht?!?!? Allgemeine Java-Themen 5
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12

Ähnliche Java Themen

Neue Themen


Oben