You can add lazy="false"a many-to-one display that will load users upon loading ForumMessage. Alternatively, you can initialize the list of users using Hibernate.initialize (). Just make sure you do this before you close the session.
Session session = gileadHibernateUtil.getSessionFactory().openSession();
string sql = "from ForumMessage";
Query query = session.createQuery(sql);
List results = query.list()
for(ForumMessage message : results)
{
Hibernate.initialize(message.User);
}
return new LinkedList <ForumMessage>(results);
, , . , . :
public LinkedList getMessages()
{
string sql = "from ForumMessage";
Query query = session.createQuery(sql);
List results = query.list();
for(ForumMessage message : results)
{
Hibernate.initialize(message.User);
}
return new LinkedList <ForumMessage>(results);
}
public void printMessages()
{
LinkedList messages = getMessages();
for(ForumMessage message : messages)
{
System.out.println(message.ForumMessage);
}
}
Users, . Hibernate, . , . , , .
public LinkedList getMessages()
{
string sql = "from ForumMessage";
Query query = session.createQuery(sql);
List results = query.list();
return new LinkedList <ForumMessage>(results);
}
public void printMessages()
{
LinkedList messages = getMessages();
for(ForumMessage message : messages)
{
for(Users user : message.User)
{
System.out.println(user);
}
}
}
, , - , . , , , Hibernate LazyInitializationException.
, Hibernate , Hibernate.initialize() .