Скажите Hibernate использовать @Version вместо @Id для проверки состояния персистентности ... используя аннотации? - PullRequest
1 голос
/ 11 ноября 2011

Я борюсь с проблемой, описанной здесь . У меня есть постоянный класс, который я хочу сделать безопасным для коллекции, переопределив hashCode() и equals(). Поскольку у моей сущности нет хорошего естественного ключа, эти методы должны будут использовать поле @Id, поэтому мне нужно назначить идентификатор во время создания объекта. Но теперь Hibernate понадобится другой способ определить, является ли экземпляр временным или постоянным, и логическое поле для этого - @Version.

Я знаю, что могу сделать это в файле hbm, используя <version unsaved-value="null">. Но я использую аннотации, которые не поддерживают атрибут unsaved-value. Если я просто использую простую аннотацию @Version, будет ли Hibernate достаточно умным, чтобы использовать ее для определения состояния сохранения? Я проверил документацию по Hibernate, но она немного неоднозначна.

Кто-нибудь знает решение, отличное от перемещения отображения всего класса в файл hbm?

1 Ответ

0 голосов
/ 12 ноября 2011

Подумайте еще раз о своей модели сущности. Если вы не можете найти естественный ключ (даже составной), у вас может быть проблема здесь.

Не помещайте свой идентификатор в equals () / hashCode () и используйте аннотацию @Version только для своих целей. Это сделает вашу жизнь сложнее.

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