我有一个以下 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 类别的网络服务。例如,该接口能够创建类别树节点,并将类别 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);
}
我的问题是:如果假设我不会调用 hibernate 来为我获取父对象(这将是愚蠢的),我该怎么做才能创建一个带有 parent_id 集的新类别对象?我可以为 Category 类提供 setParentId/getParentId 方法吗?它会有哪些休眠注释?