美文网首页
JPA 查询返回重复第一行的问题

JPA 查询返回重复第一行的问题

作者: almj | 来源:发表于2020-12-05 22:54 被阅读0次

用JPA Entity映射数据表查询出来f返回List的时候发现表里满足条件得记录有三条,但实体查询出来结果三条记录都是拿第一条重复,分析发现是因为Entity实体没有指定主键字段或者指定的字段不唯一所导致的。比如:

@Entity
@Table(name = "my_table")
public class PoiPlaceEntity implements java.io.Serializable {
    private String name;
    private String time;
    private String content;
    private Double lat;
    private Double lon;
  
    @Id
    @Column(name = "name")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Basic
    @Column(name = "time")
    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    @Basic
    @Column(name = "content")
    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    @Basic
    @Column(name = "lat")
    public Double getLat() {
        return lat;
    }

    public void setLat(Double lat) {
        this.lat = lat;
    }

    @Basic
    @Column(name = "lon")
    public Double getLon() {
        return lon;
    }

    public void setLon(Double lon) {
        this.lon = lon;
    }

}

上面的实体中把name字段当作主键,但name不唯一,导致查询出来的结果中记录条数是对的,但仔细一看都是拿第一条记录重复的。其实只要从表里找一个唯一字段设置成主键就可以,比如上面的实体中经纬度坐标应该是唯一的,所以在lat 前面加个@Id注解:

    @Id
    @Column(name = "lat")
    public Double getLat() {
        return lat;
    }

相关文章

  • JPA 查询返回重复第一行的问题

    用JPA Entity映射数据表查询出来f返回List的时候发现表里满足条件得记录有三条,但实体查询出来结果三条记...

  • JPA Specification禁用总数查询

    背景 JPA specification查询使用Pageable进行分页查询,返回的Page对象会查询数据的总数用...

  • 2018-01-09spring boot 下循环引用引起转js

    今天在spring boot下用spring data jpa配置好映射关系后发现查询没问题,但是转json返回给...

  • 7 Spring-data-jpa查询方法

    springdata-jpa 八种查询方法 Spring Data JPA 简单查询--接口方法 jpa动态查询-...

  • MySQL 如何查找删除重复行?

    如何查找重复行 如何删除重复行 如何查找多列上的重复行 错误的查询语句 几种正确的方法 如何查找重复行 第一步是定...

  • Jpa的条件查询和分页

    简介 习惯了使用mybtais操作数据库。今天,尝试了下jpa的操作,但是遇到个问题,jpa的条件查询和分页查询该...

  • JPA-复杂查询

    时间相关查询 Spring data jpa 条件查询-按时间段查询Jpa查询排序,时间范围查询,当天时间范围查询...

  • Select/Multiselect在JPA的Specifica

    在项目中想实现动态返回指定列,还有聚合查询如sum()等,还需支持动态查询条件,看到JPA中dao继承JpaSpe...

  • jpa @query

    在使用jpa时经常需要自定义查询.@query这个用的挺多的.最近多表查询中返回一个自定义对象.记录如下

  • 2018-03-16

    聊聊JPA Criteria查询中的坑 JPA Criteria查询被称作动态安全类型查询,比JPQL这种方式更加...

网友评论

      本文标题:JPA 查询返回重复第一行的问题

      本文链接:https://www.haomeiwen.com/subject/rrenwktx.html