如何使用构造函数参数为实体生成id - 这可能吗?我需要使树结构(类别 - >子类别...)传递给构造父类别ID。Hibernate:如何从实体构造函数参数中生成Id?
Category category = new Category(parentId);
CategoryDAO.add(category);
如何使用构造函数参数为实体生成id - 这可能吗?我需要使树结构(类别 - >子类别...)传递给构造父类别ID。Hibernate:如何从实体构造函数参数中生成Id?
Category category = new Category(parentId);
CategoryDAO.add(category);
一个想法是使用Hibernate的“id”“generators”。 在这里看到的文档:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-id
在你的使用情况来看,在“分配”或“类”发电机看起来适合
这并不直接回答你的问题,但是,除非我误解你的要求,你实际想是模拟自引用的关联,是这样的:如果这不是你想要的
@Entity
public class Category {
@Id @GeneratedValue
private Long id;
private String name;
@ManyToOne(optional=true)
private Category parent;
@OneToMany(mappedBy = "parent", cascade = CascadeType.ALL)
private Set<Categories> subCategories;
// ...
public void addToSubCategories(Category category) {
category.setParent(this);
this.subCategories.add(category);
}
}
,如果你不想使用生成的标识,那么根本就没有使用@GeneratedValue
注释并手动分配标识符(在构造函数中,使用setter,任何东西)。但我不明白你为什么需要这个。
另请参见http://stackoverflow.com/questions/495536/hibernate-id-generator – madhurtanwani 2010-10-21 07:40:18