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

Reply via email to