最近在做批处理数据时,由于数据源出现表无主键的情况,导致查询出来的的数据重复
- JPA查询时实体必须要有主键,于是随意指定了字段设置了
@ID
数据展示
原始数据
name | sex |
---|---|
王五 | 0 |
王五 | 1 |
王五 | 2 |
王五 | 0 |
测试 | 0 |
真实 | 0 |
测试 | 1 |
测试 | 1 |
张三 | 0 |
查询数据
[
{
"name": "王五",
"sex": 0
},
{
"name": "王五",
"sex": 0
},
{
"name": "王五",
"sex": 0
},
{
"name": "王五",
"sex": 0
},
{
"name": "测试",
"sex": 0
},
{
"name": "真实",
"sex": 0
},
{
"name": "测试",
"sex": 0
},
{
"name": "测试",
"sex": 0
},
{
"name": "张三",
"sex": 0
}
]
JPA
dao
/**
* 测试无主键下的查询
*
* @author tn
* @version 1
* @date 2021-06-26 13:01
*/
public interface JpaIdDao extends JpaRepository<JpaIdBean,String> {
}
entity
/**
* 测试没有主键的情况下使用jpa查询
*
* @author tn
* @version 1
* @date 2021-06-26 12:58
*/
@Table(name = "jpa_id")
@Entity
@Data
public class JpaIdBean {
// 由于必须要有个主键,就随便用了个
@Id
private String name;
private Integer sex;
}