Non sapevo che titolo dare, problema:
ho due entity strutturati così:
codice:
@Entity(name = "orders")
@SequenceGenerator(name = "ordersgenerator", sequenceName = "id_orders_gen")
public class Orders implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ordersgenerator")
private int idorder;
@Temporal(TemporalType.TIMESTAMP)
private Date datetime;
@ManyToOne
@JoinColumn(name = "idcustomer")
private Customer idcustomer;
@OneToMany(fetch=FetchType.EAGER)
private List<Bought> boughtCollection;
codice:
@Entity(name = "bought")
@SequenceGenerator(name = "boughtgenerator", sequenceName = "id_bought_gen")
public class Bought implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "boughtgenerator")
private Integer idbought;
private Integer quantity;
@JoinColumn(name = "iditem", referencedColumnName = "iditem")
@ManyToOne
private Item iditem;
@JoinColumn(name = "idorder", referencedColumnName = "idorder")
@ManyToOne(fetch=FetchType.EAGER)
private Orders idorder;
ora, devo recuperare tutti gli order di un certo utente, lo faccio attraverso uno stateful ejb che ha questo metodo:
codice:
public List<Orders> getAllOrders(int idc){
List<Orders> items = em.createQuery("from orders o where o.idcustomer= 1).getResultList();
return items;
}
ho messo 1 a mano perchè l'input da errore qualcuno ha idea del perchè?
il vero problema è che quando stampo la lista:
codice:
orders = mgmt.getAllOrders(1);
for (int i = 0; i < orders.size(); i++) {
Orders o = orders.get(i);
System.out.println(o.getBoughtCollection().size());
}
non sono presenti dei valori in boughtcollection, o meglio, ogni tanto sì e ogni tanto no.
come devo fare? devo farmi un altro metodo che estragga le boughtcollection?