Hibernate один на один указывает отдельную таблицу - PullRequest
0 голосов
/ 10 октября 2018

Например, если у меня есть 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...