Eclipselink сгенерировал оператор создания таблицы следующим образом:
Create Table myTable (ID (255) not null, col1 (255), col2(255), col3(255) PK (ID, col1, col2)
@Embeddable
MyPK implements Serializable
{
@OneToOne
@Id
String col1;
@OneToOne
@Id
String col2;
...
}
@Entity
MyClass implements Serializable
{
@EmbeddedId
MyPK pk;
String col1;
String col2;
String col3;
...
}
Как предотвратить создание столбца ID
в операторе Create Table
?Я спрашиваю, потому что em.persist(MyClass)
генерирует исключение ограничения, если ID
равно нулю.Я ожидал, что @EmbeddedId
переопределит это и предотвратит создание этого поля.
EDIT
Таблица, которую я пытаюсь сгенерировать в коде, выглядит примерно так:*
fk - col1
fk - col2
VarChar - col3