fab*_*474 8 java orm hibernate jpa hibernate-mapping
我的情况在这里描述:
eclipse在此持久性单元中定义的名为"ID_GENERATOR"的重复生成器
但是我的问题是不同的,所选答案并没有解决它:
" 有多个@SequenceGenerator 具有相同的名称是否有效,即使它用于此目的Hibernate:如何覆盖映射超类的属性? "
如果无效,还有替代方案吗?
非常感谢您的回答.
根据11.1.48 SequenceGenerator Annotation
JPA 2.1 规范的部分:
生成器名称的范围对于持久性单元是全局的(跨所有生成器类型)。
所以你不能有重复的生成器。
如果您尝试添加以下两个实体:
@Entity(name = "Post")
public static class Post {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pooled")
@GenericGenerator(
name = "pooled",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@Parameter(name = "sequence_name", value = "sequence"),
@Parameter(name = "initial_value", value = "1"),
@Parameter(name = "increment_size", value = "5"),
}
)
private Long id;
}
@Entity(name = "Announcement")
public static class Announcement {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pooled")
@GenericGenerator(
name = "pooled",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@Parameter(name = "sequence_name", value = "sequence"),
@Parameter(name = "initial_value", value = "1"),
@Parameter(name = "increment_size", value = "10"),
}
)
private Long id;
}
Run Code Online (Sandbox Code Playgroud)
Hibernate 将生成以下错误消息:
尝试为“增量大小”设置冲突值时遇到对数据库序列 [sequence] 的多个引用。找到[10]和[5]
这是因为标识符生成器是全局的,这两个序列配置将发生冲突。
归档时间: |
|
查看次数: |
6052 次 |
最近记录: |