我在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查询中从数据库获得的结果相同的结果。 感谢您的阅读。
答案 0 :(得分:0)
尝试本地查询:
@Query(值=“从vistapendientes中选择*”,nativeQuery = true)
Vistapendientes getCompanyDetails();
答案 1 :(得分:0)
解决此问题的唯一方法是通过hibernate的'mappedBy'属性直接在程序中构建视图。