@IdGeneratorType с OnExecutionGeneratorJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 @IdGeneratorType с OnExecutionGenerator

Сообщение Anonymous »

Можно ли использовать генератор, реализующий OnExecutionGenerator, с метааннотацией @IdGeneratorType? Кажется, мне не хватает какой-то конфигурации, поскольку hibernate генерирует правильный SQL для вставок, но не создает правильный DDL для моей таблицы.
У меня есть собственный генератор, расширяющий IdentityGenerator , который реализует OnExecutionGenerator:

Код: Выделить всё

public class MyIdGeneratorImpl extends IdentityGenerator {}
Затем генератор используется с @IdGeneratorType

Код: Выделить всё

@Retention(RUNTIME)
@Target({METHOD, FIELD})
@IdGeneratorType(MyIdGeneratorImpl.class)
public @interface MyIdGenerator{}
Наконец, @IdGeneratorType применяется к столбцу идентификатора абстрактного корневого объекта.

Код: Выделить всё

public abstract class AbstractEntity {
@Id
@MyIdGenerator
@Column(name = "Id")
private Long id;
}
Сгенерированный DDL спящего режима:

Код: Выделить всё

Hibernate:
create table MY_TABLE(
Column_1 numeric(22,10),
Column_2 numeric(22,10),
Id bigint not null,
primary key (ID_)
)
Сгенерированная вставка SQL для спящего режима:

Код: Выделить всё

insert into MY_TABLE (Column_1,Column_2,Id) values (?,?,default)
Эта вставка вызывает нарушение ограничения NULL для идентификатора столбца. Мой вопрос: почему Id не помечен как bigint, сгенерированный по умолчанию как идентификатор, как это происходит при использовании GenericGenerator с собственной стратегией вместо @IdGeneratorType?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ngenerator
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»