我建立使用JPA /休眠+春JPA類別和語言的關係
我目前建這三豆/實體基於分類的Web應用程序的多語言:類別,CategoryLanguage和語言。
類別:
@Entity
public class Category implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@ManyToOne
private Category father;
@OneToMany(mappedBy = "father")
private List<Category> children;
@OneToMany(mappedBy="category")
private List<CategoryLanguage> categoryLanguages;
CategoryLanguage:
@Entity
public class CategoryLanguage implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@ManyToOne
Category category;
@Column(length = 20, nullable = false)
private String name;
@ManyToOne
private Language language;
和語言
public class Language implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(length=2)
private String id; // en, de, fr, it, es,...
@Column(length=25)
private String name; // English, Deutsch, Français,...
通過呼喚g
from Category c join c.categoryLanguages cl where c.father = null and cl.language.id = :lang
它用正確的語言返回第一級類別,但包含所有語言作爲子級。
爲每種語言提取兒童,而不是我在查詢中選擇的兒童。
我能做些什麼來解決這個問題?我不能在JPQL中使用「加入在」,我可以嗎?
是否需要在子節點中初始化'new ArrayList()'? – CycDemo
你想用語言檢索類別及其子類別(遞歸)嗎? – CycDemo
沒有可能它不是,我會刪除它。 是的在第二個問題:) – ianaz