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

搜资料提示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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值