如何解决HQL查询左联接和带数组的Bean
我有2张桌子,上面贴着像上面的豆子。
我使用输出的JSON文件对spring进行了一些调整。
我确实尝试过使用HQL语言进行选择,以过滤文章'046'的1行。
输出JSON返回3行,而不像数据一样返回1行。
有人可以帮助我吗?
非常感谢!
数据:
Prelievo(id) Row(Id) Article
1082040 1 066
1082040 2 066
1082040 3 046
豆豆:
public class RighePrelievo implements Serializable {
@Id
@Column(name = "ABAMNB")
private int id;
@Id
@Column(name = "ABALNB")
private int rigaPrelievo;
@Column(name = "ABAJCD")
private String articolo;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "ABAMNB",insertable = false,updatable = false)
private Prelievo prelievo;
...getter and setter
}
public class Prelievo implements Serializable {
@Id
@Column(name = "AHAMNB")
private int id;
@OneToMany(mappedBy = "prelievo")
private List<RighePrelievo> righePrelievo = new ArrayList<>();
...getter and setter
}
HQL HIBERNATE查询:
String articolo = "046";
List<Prelievo> firstFilterPrelievi = (List<Prelievo>) sessionFactory.getCurrentSession()
.createQuery(
" select distinct p from "
+ " Prelievo p "
+ " left join "
+ " RighePrelievo r"
+ " on p.id=r.id"
+ " where "
+ " r.articolo = :articolo "
)
.setParameter("articolo",articolo)
.list();
输出JSON:
[
{
"id": 1082040,"righePrelievo": [
{
"id": 1082040,"rigaPrelievo": 1,"articolo": "066"
},{
"id": 1082040,"rigaPrelievo": 2,"rigaPrelievo": 3,"articolo": "046"
}
]
}
]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。