如何使用构造函数参数为实体生成id - 这可能吗?我需要将树结构(category - > subcategories ...)传递给构造函数父类别id。
Category category = new Category(parentId);
CategoryDAO.add(category);
答案 0 :(得分:0)
一个想法是使用来自Hibernate的“id”“generator”。 请参阅此处的文档:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-id
查看您的用例,“已分配”或“类”生成器似乎是合适的
答案 1 :(得分:0)
这并没有直接回答你的问题,但是,除非我误解了你的要求,你真正想要的是建立一个自引用关联模型,如下所示:
@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什么的)。但我不明白为什么你需要这个。