我目前正在使用 Spring Data 實作 JPA 持久性,但到目前為止我無法解決以下問題:
問題
我有一個 @Entity EntityClass,它有一個 Map<String, @Embedable MyEmbeddableClass>。這應該很簡單,但 MyEmbeddableClass 擁有自己的 Map<@Embeddable, Embeddable。我可以使用 @ElementCollection 注釋來實作這一點嗎?換句話說,@ElementCollection 成員可以擁有自己的集合嗎?
@Entity
public class SimpleClass {
...
@Id
private Integer id
@ElementCollection
@CollectionTable(
name="simple_class_map",
joinColumns = {@JoinColumn(name="class_key)}
)
private Map<String, MyEmbeddableClass> firstMap;
}
@Embeddable
public class MyEmbeddableClass {
...
@ElementCollection
@CollectionTable(
name="simple_class_map",
joinColumns = {@JoinColumn(name="class_key)}
)
private Map<OtherEmbeddableClass, Object> secondMap;
}
@Embeddable
public class OtherEmbeddableClass {
private String text;
private String anotherText;
}
uj5u.com熱心網友回復:
不,一個成員@ElementCollection不能包含另一個成員@ElementCollection(至少使用 Hibernate ORM)。Hibernate ORM 的檔案中提到了這一點:
值型別的集合包括基本型別和可嵌入型別。集合不能嵌套,并且在集合中使用時,可嵌入型別不允許定義其他集合。
我認為其他 JPA 實作也不支持它(但我可能錯了)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/484565.html
