Jpa 查询view or 无主键的table
文章转自: https://blog.csdn.net/qq_40059532/article/details/103885093.
1. Jpa query view (no primary key)
jpa要求数据表映射的实体类必须有id,并且是
数字类型
,但是实际的表中往往是没有主键的,如果在实体中随便给某个属性添加@id注解,那么在使用查询时得到的结果往往是相同的,比如下面的例子:
数据表:表中videoID不是主键。(是其它表的主键)
表映射的实体:因为实体必须要有@id,所以我把注解添加到videoID
手写sql
查询结果:videoID相同的查询结果都相同,也就是所有结果中查找到的都是相同videoID的那些数据的第一行,看我的表查找到的全都是第一集
2. 自己给他定义一个复合主键
另外创建一个实体:需要实现序列化,不用添加任何注解,属性就是组合在一起能成为的唯一标识的字段
给表映射的实体添加注解,给表添加@IdClass,给那两个属性添加@Id
再次看查询结果如下: