Архив метки: @org.hibernate.annotations.Parameter

Создание двунаправленной связи один-к-одному с общим значением поля ID обоих сущностей, устанавливаемым автоматически

Не всегда можно и имеет смысл расширять ту или иную таблицу за счёт добавления в неё новых полей. Зачастую удобней и правильней создать ещё одну таблицу и установить между ними связь типа один-к-одному. В БД связь может поддерживаться через общие значения первичных ключей. Аналогично необходимо создать подобную связь между отображаемыми в эти таблицы сущностями.

Такую связь можно сделать двунаправленной. И расширяющая, и расширяемая сущности в таком случае ссылаются друг на друга. Кроме того, если связь двунапрвленная и JPA провайдером в проекте является Hibernate, то можно значительно облегчить создание общего ID и сохранение связанных сущностей в БД.

Читать далее

Создание кастомного генератора id через аннотацию @GenericGenerator в Hibernate

Обычно в качестве генератора id используется сиквенс базы данных, который Hibernate создаёт автоматически, когда мы указываем над идентификационным полем аннотацию @GeneratedValue(strategy = GenerationType.SEQUENCE) или @GeneratedValue(strategy = GenerationType.AUTO). Этот сиквенс можно настроить: задать ему имя и первоначальное значение. Кроме того, вместо сиквенса можно настроить использование других методов генерации id, если, например, СУБД не поддерживает синквенсы.

Читать далее