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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...