0

在我的小项目中,我将创建 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,它是真实的还是我犯了一些错误?

4

1 回答 1

1

我不确定我是否理解这个问题,但同时指定AUTOandgenerator是不合逻辑的。AUTO意味着 ORM 应该选择它认为最合适的生成策略。并且生成器强制它使用特定的生成器。所以他们是矛盾的。

使用TABLE代替AUTO,因为您希望使用表生成器生成 ID。

于 2013-06-01T15:21:38.443 回答