我有一个包含多个属性的对象。我对象的属性之一是另一个包含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批注。
正如您的问题所述,这里有组织和工作人员,所以关系是@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