Hibernate 如何注释id以使其';没有序列表的自动增量?
我无法为新实体生成id,我尝试了:Hibernate 如何注释id以使其';没有序列表的自动增量?,hibernate,jpa,sequence,auto-generate,Hibernate,Jpa,Sequence,Auto Generate,我无法为新实体生成id,我尝试了: @Id @GeneratedValue private Long myId; 及 但是在entityManager.persist上i未找到表“序列” 在纯hibernate中,generator class=“increment”对我来说效果很好。您尝试过这个吗 @Id @GeneratedValue(strategy=GenerationType.AUTO) private int id; 您可以将myId定义为数据库中的自动增量/标识列,并按照以下方
@Id
@GeneratedValue
private Long myId;
及
但是在entityManager.persist上
i未找到表“序列”
在纯hibernate中,generator class=“increment”
对我来说效果很好。您尝试过这个吗
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
您可以将myId定义为数据库中的自动增量/标识列,并按照以下方式注释相应的字段实体:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long myId;
这至少适用于H2 1.3.160和Hibernate 3.6.8 如果要生成多个持久化对象之间共享(且唯一)的ID,请使用@TableGenerator。H2和许多其他数据库没有对序列的内部支持,因此@SequenceGenerator无法工作 下面是一个跨两个对象拥有唯一/共享@Id的快速示例:
@Entity
public class Class1 {
// setting pkColumnValue of TableGenerator is very important ;-)
@Id
@TableGenerator(
name = "guid",
initialValue = 0,
allocationSize = 10,
table = "GUID_SEQ",
pkColumnName = "GEN_KEY",
valueColumnName = "GEN_VALUE",
pkColumnValue = "GUID")
@GeneratedValue(strategy = GenerationType.TABLE, generator = "guid")
private long id;
}
@Entity
public class Class2 {
// use the same pkColumnValue
@Id
@TableGenerator(
name = "guid",
initialValue = 0,
allocationSize = 10,
table = "GUID_SEQ",
pkColumnName = "GEN_KEY",
valueColumnName = "GEN_VALUE",
pkColumnValue = "GUID")
@GeneratedValue(strategy = GenerationType.TABLE, generator = "guid")
private long id;
}
H2数据库。generator class=“increment”在纯hibernatetries中工作,以查询序列表您使用的是哪个数据库?也许这个链接有更多的信息-我想强调的是,将数据库列定义为AUTO_INCREMENT是多么重要。
@Entity
public class Class1 {
// setting pkColumnValue of TableGenerator is very important ;-)
@Id
@TableGenerator(
name = "guid",
initialValue = 0,
allocationSize = 10,
table = "GUID_SEQ",
pkColumnName = "GEN_KEY",
valueColumnName = "GEN_VALUE",
pkColumnValue = "GUID")
@GeneratedValue(strategy = GenerationType.TABLE, generator = "guid")
private long id;
}
@Entity
public class Class2 {
// use the same pkColumnValue
@Id
@TableGenerator(
name = "guid",
initialValue = 0,
allocationSize = 10,
table = "GUID_SEQ",
pkColumnName = "GEN_KEY",
valueColumnName = "GEN_VALUE",
pkColumnValue = "GUID")
@GeneratedValue(strategy = GenerationType.TABLE, generator = "guid")
private long id;
}