Я пытаюсь создать 4-уровневое веб-приложение на Java.Я использую Hibernate Framework для ORM и базы данных MySQL.Таблица «проект» имеет отношение «один ко многим» к таблице «идея».То, что я пытаюсь сделать, это получить список (или набор) идей, используя следующую функцию:
public static List getProjectIdeas(int projectId)
{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query q = session.createQuery("from Idea where id_project=" + projectId);
List<Idea> ideaList = (List<Idea>) q.list();
System.out.println(ideaList.size());
return ideaList;
}
Сначала все работает хорошо, и я получаю все идеи из базы данных.Но когда я добавляю новые идеи в проект, а затем снова вызываю функцию, я не всегда получаю полный список идей, связанных с проектом.Размер списка, который я получаю от q.list (), варьируется между количеством идей, сохраненных в базе данных до вставки, и фактическим количеством идей.Это функция, которую я использую, чтобы вставить идею в базу данных:
public static void writeObject(Object object)
{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
session.saveOrUpdate(object);
tx.commit();
}
Это мой первый проект hibernate, поэтому я не знаю, если что-то не так с файлом конфигурации:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">***/ideator</property>
<property name="hibernate.connection.username">***</property>
<property name="hibernate.connection.password">***</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
<mapping resource="mapping/Category.hbm.xml"/>
<mapping resource="mapping/Rating.hbm.xml"/>
<mapping resource="mapping/Idea.hbm.xml"/>
<mapping resource="mapping/Participation.hbm.xml"/>
<mapping resource="mapping/Project.hbm.xml"/>
<mapping resource="mapping/Criteria.hbm.xml"/>
<mapping resource="mapping/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Заранее спасибо за помощь.