[英]Using javax @Transient annotation with a field of MappedSuperclass
[英]Using @Transient Annotation for persistance storage
我有一個包含多個屬性的對象。 我對象的屬性之一是另一個包含ArrayList的對象。 層次結構如下。
Object - Organization
(
String orgId
String orgName
String parentOrgName
Organization.Workers workers //Object of Worker list...
)
我想將組織對象存儲在imdb中(在內存數據庫中)。 我正在使用Hibernate會話進行數據庫連接。
我已經將Worker對象設置為Transient這樣。
@Transient
protected Organization.Workers workers;
當我檢索組織時,每次我將此工作對象獲取為null時。 請指導我有關@transient批注的使用,並告訴我如何使用java spring中的休眠會話將嵌套對象存儲在imdb中。
@Transient
批注用於告訴JPA不要將字段存儲在數據庫中。 另外,無論何時處理合成,都要弄清楚它們之間的關系。
在上面的示例中,這種關系似乎是一對多的,因為一個組織可以有很多工人,但是一個工人一次只能在一個組織中工作。
您將必須使用@OneToMany
注釋將這種關系告知JPA。
查看Hibernate的官方鏈接以了解如何使用它。
@Transient批注用於需要特定字段進行某些工作但不願意將該字段存儲在數據庫中時使用。
正如您的問題所述,這里有組織和工作人員,所以關系是@OneToMany關系。
在組織類中:
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="organization")
private List<Workers> workers = new ArrayList<>();
在工人階級中:
@ManyToOne
@JoinColumn(name="id", unique=true)
private Organization organization;
在這里,一個組織可以有很多工人,而一個工人只能在一個組織上工作。 你有它。 :d
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.