在我的小项目中,我将创建4个表,该表中的2个具有一对一的关系:
@Entity @org.hibernate.annotations.Entity(dynamicUpdate = true) @SuppressWarnings("serial") public class Creation implements Serializable {
@TableGenerator(name="tabgen1",table="cID",allocationSize=1,pkColumnName="ColumnName",pkColumnValue="ColVal",valueColumnName="valCOLName")
@GeneratedValue(strategy= GenerationType.AUTO,generator="tabgen1")
@Id
private Long UserId;
和第二个实体是
@Entity @org.hibernate.annotations.Entity(dynamicUpdate = true) public class Worker implements Serializable {
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Creation creation;
@Id
@TableGenerator(name="tabgen2",table="WID",allocationSize=1)
@GeneratedValue(strategy= GenerationType.AUTO,generator="tabgen2")
private Long WorkerId;
并且它会创建更多表....,但我希望在我的4个表之一中安全生成walues,它是真的还是我犯了一些错误?
答案 0 :(得分:1)
我不确定我是否理解这个问题,但同时指定AUTO
和generator
是不合逻辑的。 AUTO
意味着ORM应该选择它认为最合适的生成策略。并且发电机强制它使用特定的发电机。所以他们是矛盾的。
使用TABLE
代替AUTO
,因为您希望使用表格生成器生成ID。