This is of course the manual way but fetch-groups are smarter in my
oppinion.... But i am using Kodo and it might be that fetch groups
are not supported in openJPA but i think it is....
--
regards
Marc Logemann
[blog] http://www.logemann.org
[busn] http://www.logentis.de
Am 11.09.2007 um 11:17 schrieb Gene Wu:
to support lazy load base on your code. Just change the order. Load
the object before you close em(this is the context needed for lazy
load).
EntityManagerFactory emf = Persistence.createEntityManagerFactory
("pu1");
EntityManager em = emf.createEntityManager();
OrdersEntity order = em.find(OrdersEntity.class, .....);
System.out.println(order.getUser());
em.close();
emf.close();
Thanks,
Gene.
Date: Tue, 11 Sep 2007 10:30:45 +0300
To: [email protected]
Subject: Lazy load for detached entities
From: [EMAIL PROTECTED]
Hello !
Is there any way to access fields marked with lazy fetching for
detached
entities.
Im having some code like
@Entity
@Table(schema = "public", name = "users")
public class UsersEntity {
private Integer userid;
private List<OrdersEntity> orders;
@OneToMany(cascade = CascadeType.PERSIST, mappedBy = "user", fetch =
FetchType.LAZY)
public List<OrdersEntity> getOrders() {
return orders;
}
public void setOrders(List<OrdersEntity> orders) {
this.orders = orders;
}
@Id
@Column(name = "userid", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer getUserid() {
return userid;
}
public void setUserid(Integer userid) {
this.userid = userid;
}
}
@Entity
@Table(schema = "public", name = "orders")
public class OrdersEntity {
private Integer orderid;
private UsersEntity user;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "userid", nullable = false)
public UsersEntity getUser() {
return user;
}
public void setUser(UsersEntity user) {
this.user = user;
}
@Id
@Column(name = "orderid", nullable = false, length = 10)
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer getOrderid() {
return orderid;
}
public void setOrderid(Integer orderid) {
this.orderid = orderid;
}
}
And my program code
EntityManagerFactory emf = Persistence.createEntityManagerFactory
("pu1");
EntityManager em = emf.createEntityManager();
OrdersEntity order = em.find(OrdersEntity.class, .....);
em.close();
System.out.println(order.getUser());
emf.close();
And it shows null.
--
Best Regards
Evgeny K. Shepelyuk
_________________________________________________________________
Gear up for Halo® 3 with free downloads and an exclusive offer.
It’s our way of saying thanks for using Windows Live™.
http://gethalo3gear.com?ocid=SeptemberWLHalo3_WLHMTxt_2