SpringDataJpa映射无主键表出现数据重复问题解决

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u010838785/article/details/99670771

搜资料提示orm映射的表必须有主键 网上说放一个空的@id放在那里 结果此方法测试无效

表数据如下

在这里插入图片描述
此时id不是主键 也不是唯一标识 就是个叫id的列名

使用默认查询的时候 会出现问题 返回所有数据都是重复

select id,comid from st_PkgActvty_comset  where id = 'SPA0000001'

解决方法

在这里插入代码片
@Table(name = "st_PkgActvty_comset")
@Entity
@Data
public class StPkgActvtyComset {
	// 实体中添加主键
    @Id
    @Column(name = "aid")
    private Long aid;

    @Column(nullable = true, name = "id")
    private String id;

    @Column(nullable = true, name = "comid")
    private String comid;

}

查询语句中 使用查询当前行号作为主键

select ROW_NUMBER() OVER (ORDER BY comid) AS aid, id,comid from st_PkgActvty_comset  where id = 'SPA0000001'

增加了主键字段后 查询的数据就是正常的了 最好是 多表关联的中间表给一个自增的id 还有就是和主键无关的字段 尽量不要叫做id

猜你喜欢

转载自blog.csdn.net/u010838785/article/details/99670771