У меня есть следующий 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;
}
Категория представляет собой node в дереве категорий. Я реализую веб-сервис, который позволяет категориям CRUD. Например, интерфейс имеет возможность создавать дерево категорий node и передает идентификатор категории в качестве параметра.
Я хочу просто создать новый объект 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 с помощью родительского набора, если предположить, что я не буду вызывать hibernate для извлечения родителя для меня (это было бы глупо)? Могу ли я предоставить метод setParentId/getParentId для класса категории? Какие аннотации для спящего режима будут иметь?