MySql视图显示JPA查询中来自数据库的错误信息

时间:2019-05-21 01:45:34

标签: mysql hibernate jpa javafx

我在java项目中有一个由hibernate映射的mysql视图,当我第一次映射实体并查询信息时,它提供了我数据库中的信息,但是当我向表中插入新数据时,我的视图是引用,它一次又一次地重复第一行(在视图中,表上的信息可以),就像我在视图中插入相同的信息一样。但是,在我的数据库中插入没问题,该视图可以正常工作并显示正确的信息,因此唯一的问题是映射视图。我想知道,是否有某种方法可以解决视图问题。

这是映射为实体的视图

@Entity
public class Vistapendientes {
    private int aluId;
    private String aluNom;
    private String herNom;
    private Date soliFechaSalida;
    private Date soliFechaDevuelve; 
...

这是我从数据库视图中获得的信息

select * from vistapendientes;

17380010    Oscar   Pinzas punta 1  2019-05-18  2019-05-22
17380009    Ivonne  Pinzas punta 2  2019-05-14  2019-05-26
17380010    Oscar   Martillo 1  2019-05-21  2019-05-23

我在程序中使用的查询是:

jpa-ql> select v from Vistapendientes v

这是我从该查询中获得的信息

17380010    Oscar   Pinzas punta 1  2019-05-18  2019-05-22
17380009    Ivonne  Pinzas punta 2  2019-05-14  2019-05-26
17380010    Oscar   Pinzas punta 1  2019-05-18  2019-05-22

如您所见,第一行重复出现,而不是向我显示数据库中的实际信息。

当然,我希望获得与在程序中执行的JPA-QL查询中从数据库获得的结果相同的结果。 感谢您的阅读。

2 个答案:

答案 0 :(得分:0)

尝试本地查询:

@Query(值=“从vistapendientes中选择*”,nativeQuery = true)

Vistapendientes getCompanyDetails();

答案 1 :(得分:0)

解决此问题的唯一方法是通过hibernate的'mappedBy'属性直接在程序中构建视图。