Mam następujące klasy Java, który jest również podmiotem Hibernate:java jednostka hibernacji: pozwala na ustalenie powiązanego obiektu zarówno przez id i sam obiekt
@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;
}
kategoria reprezentuje węzeł w drzewie kategorii. Wdrażam usługę sieciową, która pozwala na kategorie CRUD. Na przykład interfejs ma możliwość utworzenia węzła drzewa kategorii i przekazuje identyfikator kategorii jako parametr.
Chcę tylko utworzyć nowy obiekt kategorii i zachować go w bazie danych bez pobierania obiektu nadrzędnego. Moja klasa dostawcy danych wygląda następująco:
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);
}
Moje pytanie brzmi: co mogę zrobić, aby utworzyć nową kategorię obiektu z parent_id ustawiony jeśli zakładając, że nie będzie wywoływać hibernacji sprowadzić rodzica dla mnie (to byłoby być głupim)? Czy mogę podać metodę setParentId/getParentId dla klasy Category? Jakie byłyby adnotacje hibernacji?
Dlaczego po prostu tego nie spróbujesz? Tak, prawdopodobnie będzie działać. – Magnilex
@MagnusTengdahl Nie mam pojęcia, jak wykonać mapowanie adnotacji ... – ducin