Почему у @SequenceGenerator есть имя? - PullRequest
1 голос
/ 28 февраля 2011

Джавадок говорит

Уникальное имя генератора, которое может быть ссылается одним или несколькими классами на быть генератором первичного ключа значения

Но это аннотация, которая ставится поверх @Entity, поэтому я не понимаю причины.

Можно ли использовать в @Entity @SequenceGenerator, определенный в другом @Entity?

Ответы [ 2 ]

6 голосов
/ 28 февраля 2011

Идея состоит в том, что несколько объектов могут захотеть разделить пространство ключей.

Например, если у вас есть две сущности Foo и Bar, вы бы хотели, чтобы у вас не было и Foo с идентификатором 1, и Bar с идентификатором 1. Это можно сделать, указав одно и то же name для их @SequenceGenerator аннотаций.

0 голосов
/ 28 февраля 2011

Вы, когда используете генератор в аннотации @GeneratedValue, ссылаетесь на него по имени.Вот почему имя используется.Генератор последовательности может быть объявлен внутри аннотации GeneratedValue, но они решили иначе.Это дает вам возможность использовать один и тот же генератор в нескольких полях или даже делиться ими между объектами.Когда вы не используете эту функцию, это, конечно, накладные расходы для вас.

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