Например, если у меня есть Java-код, подобный следующему:
Transaction tx = session.beginTransaction();
Test test1 = new Test("How many grams in a pound?");
Test test2 = new Test("Which is the biggest continent?");
Test test3 = new Test("Which animal is the fastest?");
session.save(test1);
session.save(test2);
session.save(test3);
tx.commit();
printTests();
tx = session.beginTransaction();
User user1 = new User("Peter");
user1.userTest = test1;
User user2 = new User("John");
user2.userTest = test2;
session.save(user1);
session.save(user2);
tx.commit();
printUsers();
user2.userTest.setText(user2.userTest.getText() + " Answer : Asia is the biggest continent");
tx = session.beginTransaction();
session.save(user2);
tx.commit();
printTests();
printUsers();
Я получаю такой результат:
Тест: Сколько граммов в фунте?
Тест: Какой самый большой континент?
Тест: Какое животное самое быстрое?
Пользователь: У Питера есть тест: Сколько граммов в фунте?
Пользователь: У Джона есть тест: Какой самый большой континент?
Тест: Сколько граммов в фунте?
Тест: Какой самый большой континент?Ответ: Азия - самый большой континент
Тест: Какое животное самое быстрое?
Пользователь: У Питера есть тест: Сколько граммов в фунте?
Пользователь: Джон имееттест: Какой самый большой континент?Ответ: Азия - самый большой континент
Но я не хочу, чтобы мои объекты, хранящиеся в таблице тестов, обновлялись.Желательно, чтобы я хотел отдельную таблицу для тестов, связанных с пользователями.Таким образом, у меня будет таблица с некоторым количеством тестов, и другая, возможно, намного большая таблица с пользовательскими тестами, которые могут обновляться пользователями.Как этого добиться с помощью Hibernate?Это мои конфиги Hibernate для пользователей и тестовых объектов:
<hibernate-mapping>
<class name="my.hibernate.test.User" table="users">
<id name="id"> <generator class="increment"></generator></id>
<property name="name"></property>
<one-to-one name="userTest" access="field" class="my.hibernate.test.Test"></one-to-one>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="my.hibernate.test.Test" table="tests">
<id name="id"><generator class="increment"></generator></id>
<property name="text"></property>
</class>
</hibernate-mapping>