Re: RequestFactory Eagerly Fetches the collections in my entity meant to loaded Lazy

2013-02-17 Thread Aryan
Thanks Thomas, You always been a great help... :)
 
 

On Saturday, 16 February 2013 03:47:37 UTC+5:30, Thomas Broyer wrote:

 Because a ValueProxy has no identity (and therefore cannot be retrieved 
 again later), .with() doesn't apply to it; it only applies to EntityProxy.

 On Friday, February 15, 2013 11:07:10 PM UTC+1, Aryan wrote: 

 Hi all,
 RequestFactory seems to fetch whatever the collection I have in my 
 ValueProxy eagarly.

 Lets see the code
  
 @Entity
 public class Venue implements Serializable {
  
  private name;
  private Address address;
  
 private  SetVenueContact contacts;
 
 @OneToMany(fetch = FetchType.LAZY)
 public SetVenueContact getVenueContactses() {
 return this.contacts;
 }

   // other getters and setters

 }
 Lets assume I have set everything else for RequestFactory and Hibernate 
 (Hibernate standalone tests run fine) in order.
  
 I call the below code from client:
  
 requestFactory.venueRequest.findById(7).fire(new RecieverVenueProxy() {
  
   public void onSuccess(VenueProxy res) {
log.info(I never get this :();
}
 });
  
 In service method
  
 public Venue findById() {
   //currently I am using a command pattern for a unit of transaction 
 but anyway I just write simply whats happening
  
   // assume try catch and variable declaration code
  
   session = HibernateUtil.getSessionFactory.openSession();
   trx = session.getTrasaction(); 
   trx.beginTransaction();
   venue = veneuDao.findById(7);
   trx.commit();
   session.close();
 }
  

 ##
 Run Application and get this exception
 org.hibernate.LazyInitializationException: failed to lazily initialize a 
 collection of role: com.x..dto.Venue.contacts, no session or 
 session was closed
  at 
 org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:383)
  at 
 org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:375)
  at 
 org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:368)
  at 
 org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:111)
  at 
 org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:186)
  at 
 com.google.web.bindery.requestfactory.server.Resolver.resolveClientValue(Resolver.java:617)
  at 
 com.google.web.bindery.requestfactory.server.Resolver.access$400(Resolver.java:50)
  at 
 com.google.web.bindery.requestfactory.server.Resolver$PropertyResolver.visitReferenceProperty(Resolver.java:139)
  at 
 com.google.web.bindery.autobean.shared.AutoBeanVisitor.visitCollectionProperty(AutoBeanVisitor.java:229)
  at 
 com.google.web.bindery.autobean.vm.impl.ProxyAutoBean.traverseProperties(ProxyAutoBean.java:300)
  at 
 com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.traverse(AbstractAutoBean.java:166)
  at 
 com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.accept(AbstractAutoBean.java:101)
  at 
 com.google.web.bindery.requestfactory.server.Resolver.resolveClientValue(Resolver.java:395)
  at 
 com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.processInvocationMessages(SimpleRequestProcessor.java:483)
  at 
 com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:225)
  at 
 com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:127)
  at 
 com.google.web.bindery.requestfactory.server.RequestFactoryServlet.doPost(RequestFactoryServlet.java:133
 )
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
  at 
 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
  at 
 com.x.x.x.PersistenceFilter.doFilter(PersistenceFilter.java:35)
  at 
 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
  at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
  at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
  at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
  at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
  at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
  at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
  at 
 org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
  at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
  at 

RequestFactory Eagerly Fetches the collections in my entity meant to loaded Lazy

2013-02-15 Thread Aryan
Hi all,
RequestFactory seems to fetch whatever the collection I have in my 
ValueProxy eagarly.

Lets see the code
 
@Entity
public class Venue implements Serializable {
 
 private name;
 private Address address;
 
private  SetVenueContact contacts;

@OneToMany(fetch = FetchType.LAZY)
public SetVenueContact getVenueContactses() {
return this.contacts;
}

  // other getters and setters

}
Lets assume I have set everything else for RequestFactory and Hibernate 
(Hibernate standalone tests run fine) in order.
 
I call the below code from client:
 
requestFactory.venueRequest.findById(7).fire(new RecieverVenueProxy() {
 
  public void onSuccess(VenueProxy res) {
   log.info(I never get this :();
   }
});
 
In service method
 
public Venue findById() {
  //currently I am using a command pattern for a unit of transaction 
but anyway I just write simply whats happening
 
  // assume try catch and variable declaration code
 
  session = HibernateUtil.getSessionFactory.openSession();
  trx = session.getTrasaction(); 
  trx.beginTransaction();
  venue = veneuDao.findById(7);
  trx.commit();
  session.close();
}
 
##
Run Application and get this exception
org.hibernate.LazyInitializationException: failed to lazily initialize a 
collection of role: com.x..dto.Venue.contacts, no session or 
session was closed
 at 
org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:383)
 at 
org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:375)
 at 
org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:368)
 at 
org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:111)
 at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:186)
 at 
com.google.web.bindery.requestfactory.server.Resolver.resolveClientValue(Resolver.java:617)
 at 
com.google.web.bindery.requestfactory.server.Resolver.access$400(Resolver.java:50)
 at 
com.google.web.bindery.requestfactory.server.Resolver$PropertyResolver.visitReferenceProperty(Resolver.java:139)
 at 
com.google.web.bindery.autobean.shared.AutoBeanVisitor.visitCollectionProperty(AutoBeanVisitor.java:229)
 at 
com.google.web.bindery.autobean.vm.impl.ProxyAutoBean.traverseProperties(ProxyAutoBean.java:300)
 at 
com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.traverse(AbstractAutoBean.java:166)
 at 
com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.accept(AbstractAutoBean.java:101)
 at 
com.google.web.bindery.requestfactory.server.Resolver.resolveClientValue(Resolver.java:395)
 at 
com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.processInvocationMessages(SimpleRequestProcessor.java:483)
 at 
com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:225)
 at 
com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:127)
 at 
com.google.web.bindery.requestfactory.server.RequestFactoryServlet.doPost(RequestFactoryServlet.java:133
)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
 at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
 at 
com.x.x.x.PersistenceFilter.doFilter(PersistenceFilter.java:35)
 at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
 at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
 at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
 at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
 at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
 at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at 
org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
 at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:324)
 at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
 at 
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
 at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
 

Re: RequestFactory Eagerly Fetches the collections in my entity meant to loaded Lazy

2013-02-15 Thread Thomas Broyer
Because a ValueProxy has no identity (and therefore cannot be retrieved 
again later), .with() doesn't apply to it; it only applies to EntityProxy.

On Friday, February 15, 2013 11:07:10 PM UTC+1, Aryan wrote:

 Hi all,
 RequestFactory seems to fetch whatever the collection I have in my 
 ValueProxy eagarly.

 Lets see the code
  
 @Entity
 public class Venue implements Serializable {
  
  private name;
  private Address address;
  
 private  SetVenueContact contacts;
 
 @OneToMany(fetch = FetchType.LAZY)
 public SetVenueContact getVenueContactses() {
 return this.contacts;
 }

   // other getters and setters

 }
 Lets assume I have set everything else for RequestFactory and Hibernate 
 (Hibernate standalone tests run fine) in order.
  
 I call the below code from client:
  
 requestFactory.venueRequest.findById(7).fire(new RecieverVenueProxy() {
  
   public void onSuccess(VenueProxy res) {
log.info(I never get this :();
}
 });
  
 In service method
  
 public Venue findById() {
   //currently I am using a command pattern for a unit of transaction 
 but anyway I just write simply whats happening
  
   // assume try catch and variable declaration code
  
   session = HibernateUtil.getSessionFactory.openSession();
   trx = session.getTrasaction(); 
   trx.beginTransaction();
   venue = veneuDao.findById(7);
   trx.commit();
   session.close();
 }
  

 ##
 Run Application and get this exception
 org.hibernate.LazyInitializationException: failed to lazily initialize a 
 collection of role: com.x..dto.Venue.contacts, no session or 
 session was closed
  at 
 org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:383)
  at 
 org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:375)
  at 
 org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:368)
  at 
 org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:111)
  at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:186)
  at 
 com.google.web.bindery.requestfactory.server.Resolver.resolveClientValue(Resolver.java:617)
  at 
 com.google.web.bindery.requestfactory.server.Resolver.access$400(Resolver.java:50)
  at 
 com.google.web.bindery.requestfactory.server.Resolver$PropertyResolver.visitReferenceProperty(Resolver.java:139)
  at 
 com.google.web.bindery.autobean.shared.AutoBeanVisitor.visitCollectionProperty(AutoBeanVisitor.java:229)
  at 
 com.google.web.bindery.autobean.vm.impl.ProxyAutoBean.traverseProperties(ProxyAutoBean.java:300)
  at 
 com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.traverse(AbstractAutoBean.java:166)
  at 
 com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.accept(AbstractAutoBean.java:101)
  at 
 com.google.web.bindery.requestfactory.server.Resolver.resolveClientValue(Resolver.java:395)
  at 
 com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.processInvocationMessages(SimpleRequestProcessor.java:483)
  at 
 com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:225)
  at 
 com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:127)
  at 
 com.google.web.bindery.requestfactory.server.RequestFactoryServlet.doPost(RequestFactoryServlet.java:133
 )
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
  at 
 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
  at 
 com.x.x.x.PersistenceFilter.doFilter(PersistenceFilter.java:35)
  at 
 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
  at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
  at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
  at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
  at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
  at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
  at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
  at 
 org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
  at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
  at org.mortbay.jetty.Server.handle(Server.java:324)
  at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
  at