java休眠实体:允许通过id和对象本身设置相关对象
我有一个以下Java类,它也是一个Hibernate实体:
@Entity
@Table(name = "category")
public class Category {
@ManyToOne
@JoinColumn(name="parent_id")
private Category parent;
public Category getParent() {
return parent;
}
public void setParent(Category parent) {
this.parent = parent;
}
类别表示类别树中的节点。我正在实现一个允许CRUD类别的Web服务。例如,该接口能够创建类别树节点,并将类别 ID 作为参数传递。
我只想创建一个新的Category对象并将其保存到数据库中,而不获取父对象。我的数据提供程序类如下所示:
public void createCategory(int parent_id, String name, CategoryType type) {
Category category = new Category();
category.setName(name);
// category.setParent(?); <- I don't have this object here
// category.setParentId(id); <- but I do have the id
category.setType(type);
this.categoryDao.save(category);
}
我的问题是:如果假设我不会调用休眠来为我获取父对象(这将是愚蠢的),我该怎么做才能创建一个新的Category对象,并设置parent_id设置?我可以为类别类提供 setParentId/getParentId 方法吗?它会有什么休眠注释?