Hi Mark!
You are Absolutely Right, this solve my problem....;-) but I would
like to use the OpenSessionInViewFilter and have the best the
Hibernate can offer: transparency.
Do you have experiences with that?
Thanks!
On Tue, May 5, 2009 at 5:47 PM, Mark Petrovic <mark_at_petrovic.org> wrote:
> I may be answering a completely different question (in which case I would be
> Not Even Wrong), but does it help to annotate your entity class
>
> @Entity
> @Proxy(lazy = false)
> public class SomeClass implements java.io.Serializable {
> ...
> }
>
> This helps when the session closes, but you need data from the object graph.
>
> On May 5, 2009, at 1:44 PM, Paul Sandoz wrote:
>
>> Hi Fábio,
>>
>> Does the following help:
>>
>>
>> http://stackoverflow.com/questions/345705/hibernate-lazyinitializationexception-could-not-initialize-proxy
>>
>> I think the problem is that after the method is returned the transaction
>> goes out of scope, but the object is lazily initialized after the method has
>> returned.
>>
>> I often find that googling such exceptions can help:
>>
>>
>> http://www.google.co.uk/search?hl=en&q=org.hibernate.LazyInitializationException%3A+could+not+initialize+proxy+-+no+Session&btnG=Google+Search&meta=&aq=f&oq=
>>
>> Paul.
>>
>> On May 5, 2009, at 10:35 PM, Fabio Oliveira wrote:
>>
>>> Hi list!
>>>
>>> Probably I'm doing something really stupid, but all day I'm fighting
>>> against the integration between Spring and Jersey and Hibernate.
>>>
>>> I'm trying to do the basic: to access some persistent classes using
>>> a Restful architecture. But when I try to get a reference for another
>>> persistent class, Hibernate throws a LazyInitializationException.
>>>
>>> Example:
>>>
>>> public class Person {
>>> private int id;
>>> private String name;
>>> private Address address;
>>>
>>> ... getters and setters ...
>>> }
>>>
>>> public class Address {
>>> private int id;
>>> private String street
>>> ... getters and setters ...
>>> }
>>>
>>> @Path("/person")
>>> @Component
>>> @Scope("singleton")
>>> @Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
>>> @Transactional
>>> public class PersonResource {
>>>
>>> @Autowired
>>> private RepositorioPapel personRepository;
>>>
>>> @Path("{id}")
>>> @GET
>>> public Person getPerson(@PathParam("id")
>>> int id) {
>>> Person p = personRepository.get(id);
>>> if (p == null) {
>>> throw new NotFoundException("Person not found");
>>> }
>>> return p;
>>> }
>>>
>>> }
>>>
>>> My web.xml:
>>>
>>> <web-app>
>>> <display-name>Server</display-name>
>>> <context-param>
>>> <param-name>contextConfigLocation</param-name>
>>> <param-value>/WEB-INF/applicationContext.xml</param-value>
>>> </context-param>
>>>
>>> <filter>
>>> <filter-name>hibernateFilter</filter-name>
>>>
>>>
>>> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
>>> </filter>
>>>
>>> <filter-mapping>
>>> <filter-name>hibernateFilter</filter-name>
>>> <url-pattern>/resources/*</url-pattern>
>>> </filter-mapping>
>>>
>>> <listener>
>>>
>>>
>>> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
>>> </listener>
>>> <servlet>
>>> <servlet-name>Jersey Spring Web Application</servlet-name>
>>>
>>>
>>> <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
>>> <load-on-startup>1</load-on-startup>
>>> </servlet>
>>> <servlet-mapping>
>>> <servlet-name>Jersey Spring Web Application</servlet-name>
>>> <url-pattern>/resources/*</url-pattern>
>>> </servlet-mapping>
>>> <welcome-file-list>
>>> <welcome-file>index.html</welcome-file>
>>> </welcome-file-list>
>>> </web-app>
>>>
>>> As you can see, I'm trying to use the OpenSessionInViewFilter, but
>>> always with the same result:
>>>
>>> org.hibernate.LazyInitializationException: could not initialize proxy -
>>> no Session
>>>
>>>
>>> org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57)
>>>
>>>
>>> org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
>>>
>>>
>>> org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)
>>> Address$$EnhancerByCGLIB$$a03449c5.getStreet(<generated>)
>>> Address
>>>
>>> $JaxbAccessorM_getStreet_setStreet_java_lang_String.get(MethodAccessor_Ref.java:52)
>>> ...
>>>
>>>
>>> Anyone already did something similar? Any clues?
>>>
>>> Thanks very much!
>>>
>>>
>>> --
>>>
>>> Fábio Braga de Oliveira
>>> ArchitecTeam Consulting
>>> http://www.linkedin.com/in/fabiobragaoliveira
>>> E-mail: fabio.braga_at_gmail.com
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>
>
> --
> Mark Petrovic
> mark_at_petrovic.org
> http://www.petrovic.org
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>
>
--
Fábio Braga de Oliveira
ArchitecTeam Consulting
http://www.linkedin.com/in/fabiobragaoliveira
E-mail: fabio.braga_at_gmail.com
Mobile: +55 19 9270-6574