ich folgende Java-Klasse habe, die auch eine Hibernate Einheit ist:Java Hibernate Einheit: erlaubt sowohl von id damit verbundene Ziel gesetzt und das Objekt selbst
@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;
}
Die Kategorie stellt einen Knoten in einem Kategoriebaum. Ich implementiere einen Webservice, der CRUD-Kategorien erlaubt. Zum Beispiel hat die Schnittstelle die Fähigkeit, einen Kategoriebaumknoten zu erstellen, und sie übergibt die Kategorie-ID als einen Parameter.
Ich möchte nur ein neues Category-Objekt erstellen und es in der Datenbank beibehalten, ohne das übergeordnete Objekt abzurufen. Meine Daten-Provider-Klasse sieht wie folgt aus:
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);
}
Meine Frage ist: Was kann ich tun, um eine neue Kategorie-Objekt mit dem parent_id wenn unter der Annahme, ich rufe nicht gesetzt erstellen wintern die Eltern für mich zu holen (dies würde dumm sein)? Kann ich eine setParentId/getParentId-Methode für die Category-Klasse bereitstellen? Welche Hibernate Annotations hätte es?
Warum versuchst du es nicht einfach? Ja, es wird wahrscheinlich funktionieren. – Magnilex
@MagnusTengdahl Ich habe keine Ahnung, wie man das Annotationsmapping durchführt ... – ducin