0
我試圖映射與-同一類中的父子關係:當我做類別GET我只得到parentCategoryJPA無法檢索親子映射子條目
public class Category {
@Id
@SequenceGenerator(name = "categorySeq", sequenceName = "category_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "categorySeq")
@Column(name = "category_id", nullable = false)
private Long id;
@Column(name = "code", nullable = true)
private String code;
@Column(name = "name", nullable = false)
private String name;
@Column(name = "parent_id", nullable = true)
private Long parentId;
@ManyToOne
@JoinColumn(name = "parent_id", insertable = false, updatable = false)
public Category parentCategory;
@OneToMany(mappedBy = "parentCategory", cascade = CascadeType.ALL)
public List<Category> subCategories = new ArrayList<Category>();
}
並且subCategories出現爲空。我希望在GET上返回父項和子項。任何想法這裏有什麼不對?
咦?您定義了一個序列生成器,然後定義使用IDENTITY策略(而不是SEQUENCE)。沒有意義。完全一樣。 IDENTITY是使用「AUTOINCREMENT」而不是序列 –
哦,是的,它應該是序列。謝謝。 – UsmanChaudhri
爲什麼將parent_id映射爲基本映射和關係?由於您已將關係標記爲有效只讀,因此添加父項時,是否還要將子項添加到父類的subCategories列表中?我建議你切換它,以便parentId是隻讀的並且根據關係設置parent_id,以便JPA可以在檢索父級序列值時爲您設置字段,並驗證您是否正在設置此雙向關係的兩側。 – Chris