我想在自定义类中包装id。喜欢这个
@Entity
@Table(name = "USERS")
public class User {
@EmbeddedId
UserId id;
}
@Embeddable
public class UserId implements Serializable {
private Long value;
}
value
的自动生成UserId
中的问题。我应该怎样做才能使@GeneratedValue
value
可行?
BTW,如果id
自动初始化将会很棒。
答案 0 :(得分:1)
据我所知,Hibernate只为标记为@Id的字段生成值。我找到this帖子,哈代的回答支持这个。
我们尝试过类似的操作并通过预插入监听器进行管理。虽然这是相当复杂和不理想的。您也可能在不同的数据库平台上发现不同的行为。使用Oracle序列意味着您需要分配值pre-insert(Hibernate执行select以获取值然后插入)但是使用MySQL自动递增字段将分配值并且hibernate执行插入以生成自动生成值,然后选择找出值是什么。