java - 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 休眠查询:
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,
"articolo": "066"
},
{
"id": 1082040,
"rigaPrelievo": 3,
"articolo": "046"
}
]
}
]
解决方案
推荐阅读
- oracle - varchar 立即执行
- json - 在没有反斜杠的请求中发送 JSON
- python - pyspark 中的重型有状态 UDF
- xamarin - 来自 HttpWebResponse 的流上的 xamarin IOS ReadToEnd() 不起作用
- wpf - 如何在 Visual Studio 中安装这些饼图控件?
- if-statement - 为什么 if(not nil) 会给我一个 ArgumentError?
- php - 基于 HTTP_USER_AGENT 的 PHP 重定向
- r - 渲染图不出现
- php - 使用 PHP 更新 2 个不同 .json 文件中的值
- apache - .htaccess 规则到 NGINX