我是JPA的新手。在我的新项目中,我们使用Eclipse Link JPA。
我有两张桌子。学生,地址。每个学生可能有多个地址(地址历史记录)。所以一对多关系。在StudentEntity.java文件中,我提到了Set。
现在我的问题是,每当我获取所有学生详细信息时,在Set中,我只需要一个Addressed条目,基于地址表中创建的日期。这意味着当我使用createQuery获取List时,如何提及相关的表条件。
StudentEntity
学生1 ---约翰 学生2 ---罗伯特
地址
Addr_id - STU_ID - Addr1 - 城市---创建日期 1 - STUDENT1 - latestadd --latestcity - 23-8-2017 2 - STUDENT1 - oldaddr --oldcity - 12-8-2016
@OneToMany() 设置地址;
因此,当我不创建查询("从学生选择s")时,我想只获得addr_id = 1这是最新地址的地址。
我如何使用createQuery实现这一目标?
答案 0 :(得分:1)
通过以下查询获得所需结果
学生加入s.addresses a a.id = 1"正在给予结果,而且,对于" @ OneToMany"我们需要给出注释" @ JoinFetch"。
答案 1 :(得分:0)
使用createQuery(“从学生中选择s,其中addr_id = 1”) 据我所知,这就是你要求的