Это не дает прямого ответа на ваш вопрос, но, если я не неправильно понял ваши требования, вы на самом деле хотите смоделировать ассоциативную ссылку, примерно такую:
@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
и присвойте идентификатор вручную (в конструкторе, используя установщик, что угодно ). Но я не понимаю, зачем тебе это нужно.