[英]Hibernate: How to generate Id from entity constructor parameters?
如何使用构造函数参数为实体生成ID-可以吗? 我需要使树结构(类别->子类别...)传递给构造函数的父类别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
查看您的用例,“ assigned”或“ class”生成器似乎很合适
这不会直接回答您的问题,但是除非我误解了您的要求,否则您真正想要的是对自引用关联进行建模,如下所示:
@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进行任何操作)。 但是我不明白为什么你需要这个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.