Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate equals & hashcode / 3 сообщений из 3, страница 1 из 1
19.06.2012, 11:40:46
    #37843913
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate equals & hashcode
Вопрос такой....

Вот есть скажем простая сущность...

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
class Something {
    // primary key
    private Integer id;

    private String name;

    private String description;
}



я определил equals & hashCode так, что в нем участвуют все три поля. Возможно в этом и есть моя беда.

Проблема следующая, иногда мне нужно добавлять в базу экземпляр, а иногда нет(например когда поля name, description совпадают с каким-то экземпляром, который был получен, после выборки всех записей), - для этого мне приходится явно писать код, который проверяет, есть ли уже "такой же" объект в базе или нет.

Как-то можно это делегировать на Hibernate?
...
Рейтинг: 0 / 0
19.06.2012, 11:45:41
    #37843931
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate equals & hashcode
scymaksя определил equals & hashCode так, что в нем участвуют все три поля. Возможно в этом и есть моя беда.
Изменяемые поля не должын влизять на hashCode, а соответственно на equals. Если name и description, никогда у экземпляра не меняются, то нормально. Если меняются. То стоит убрать.

scymaksПроблема следующая, иногда мне нужно добавлять в базу экземпляр, а иногда нет(например когда поля name, description совпадают с каким-то экземпляром, который был получен, после выборки всех записей), - для этого мне приходится явно писать код, который проверяет, есть ли уже "такой же" объект в базе или нет. Как-то можно это делегировать на Hibernate?
Не уверен, что хибернейт решит проблему. Но у него есть такой параметр в маппинге как natural id. Если у вас имя и описание уникальные, то это натуральный ключ. Попробуйте его прописать в маппинге. Возможно это решит проблему.
...
Рейтинг: 0 / 0
19.06.2012, 11:49:05
    #37843941
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate equals & hashcode
Интересно при чем здесь equals и hashCode?
Хибернейт использует значение id, для того чтобы определить нужно ли добавить запись, или сделать апдейт существующей.
Вот немного по теме:
https://hibernate.onjira.com/browse/HHH-2896
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate equals & hashcode / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]