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