Hibernate Framework - дублирующиеся поля возвращаются - PullRequest
0 голосов
/ 26 марта 2012

В основном я запрашиваю таблицу, подобную следующей

keywordId | keyword

1             abc 
1             abcd 
2             feg 
2             xyz 
2             tuv

Когда я передаю запрос, такой как:

"FROM keyword Where keywordId = 2"

Я получаю следующее:

2             feg
2             feg
2             feg

Вот метод, который я использую

public List<DataModel> selectRecord(String sqlQuery) {  

    SessionFactory factory = new Configuration().configure().buildSessionFactory();
    Session session = factory.openSession();
    session.beginTransaction(); 
    Query query = session.createQuery(sqlQuery);
    List<DataModel> data = query.list();

     session.clear();
     session.close();
     return data;

}

Честно говоря, не слишком уверен, почему это происходит, но это также происходит в других таблицах с такой же структурой, как у ФК

Проницательность приветствуется! :)

Ответы [ 2 ]

1 голос
/ 26 марта 2012

Основная причина этого заключается в том, что в вашей базе данных отсутствует свойство идентификатора.Hibernate не способен к пониманию и что

2> feg

отличается от приведенного ниже.

2> xyz

Рекомендуется определить первичный ключ для таблицы.Вы можете узнать больше об этой проблеме, посетив эту ссылку . Надеюсь, это поможет

0 голосов
/ 26 марта 2012

Несмотря на то, что Hibernate любит первичные ключи только с одним столбцом, вы, тем не менее, можете делать то же, что и вы, но вы должны знать, что первичным ключом вашей таблицы являются оба столбца: ключевое слово ID и ключевое слово вместе.

Я думаю,ошибка в вашем отображении.Сопоставление первичного ключа должно выглядеть следующим образом:

<composite-id>
    <key-property name="keywordId" column="..." type="int" /> 
    <key-property name="keyword" column="..." type="java.lang.String" /> 
</composite-id>

Если другая таблица ссылается на эту таблицу, ее внешний ключ также должен быть в обоих столбцах.

Другая причина вашей ошибки:, у вас есть похожие таблицы, и один класс для них расширяет класс ключевых слов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...