所有.我有通过hbm2ddl生成DB方案的问题.我想对所有私钥使用共享序列生成器.所以我在某个实体中定义了一次.
@Entity
@SequenceGenerator(name = "MY_SEQUENCE_GENERATOR", sequenceName = "MY_SEQ")
public class MyEntity implements Serializable {
....
}
Run Code Online (Sandbox Code Playgroud)
然后我想对所有id使用这个序列生成器.
public class SomeEntity1 implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MY_SEQUENCE_GENERATOR")
Long id;
....
}
public class SomeEntity2 implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MY_SEQUENCE_GENERATOR")
Long id;
....
}
Run Code Online (Sandbox Code Playgroud)
当我运行hbm2ddl ant任务时,我得到一个异常:
[hibernatetool] javax.persistence.PersistenceException: org.hibernate.AnnotationException: Unknown Id.generator: MY_SEQUENCE_GENERATOR
[hibernatetool] org.hibernate.AnnotationException: Unknown Id.generator: MY_SEQUENCE_GENERATOR
Run Code Online (Sandbox Code Playgroud)
这是一个问题还是我做错了什么?
序列导入,即@SequenceGenerator
注释应该出现在所有类中。因此,使用此注释创建一个抽象类并从中扩展所有实体:
@SequenceGenerator(name = "MY_SEQUENCE_GENERATOR", sequenceName = "MY_SEQ")
public abstract class BaseEntity implements Serializable {
....
}
public class SomeEntity1 extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MY_SEQUENCE_GENERATOR")
Long id;
....
}
public class SomeEntity2 extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MY_SEQUENCE_GENERATOR")
Long id;
....
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
950 次 |
最近记录: |