2011-09-03 94 views
0

我想在自定义类中包装id。像这样id密钥的自定义包装

@Entity 
@Table(name = "USERS") 
public class User { 
    @EmbeddedId 
    UserId id; 
} 
@Embeddable 
public class UserId implements Serializable { 
    private Long value; 
} 

的汽车代valueUserId问题。我应该怎么做@GeneratedValuevalue可行?

顺便说一句,如果id会自动初始化,那将会很棒。

回答

1

就我所知,Hibernate只会为标记为@Id的字段生成值。我发现this后,哈代的回答支持这一点。

我们试图做类似的事情,并通过预插入监听器进行管理。虽然这是相当复杂和不理想的。你也可能在不同的数据库平面上发现不同的行为。使用Oracle序列将意味着你需要分配预先插入的值(Hibernate做一个select来获取值然后插入),但是使用MySQL自动递增字段将分配值,并且hibernate执行一个插入来生成自动生成的价值,然后选择找出价值。

+0

感谢您的回复。这是非常奇怪的,这种功能不支持,因为它可以被普遍使用。 –