美文网首页
jpa查询注意点及异常解决集合

jpa查询注意点及异常解决集合

作者: linjiajiam | 来源:发表于2018-08-31 09:25 被阅读0次

    1、当用原生sql写查询语句,并且用以下方法转换查询结果集的时候

    dataQuery.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(SeafoodPrice.class));
    

    出现错误:

    java.lang.ClassCastException: com.demo.model.User cannot be cast to java.util.Map
    

    则必须查看sql中的select 属性是否和类中声明的一致,尤其是大小写。例如,有一个User类如下:

    @Entity
    @Table(name = "user")
    public class User {
    
        @Id
        @Column(name = "id")
        @GeneratedValue(strategy =  GenerationType.AUTO)
        private Integer id;
    
        @Column(name = "userid")
        private String userId;
    
        @Column(name = "username")
        private String userName;
    
       .....省略get 、set
    }
    

    那么,sql分如下情况

    SELECT id, userId, userName from user   //正确sql
    SELECT id, userId, username from user  //错误sql,区别在username
    

    2、查询部分字段,或者查询全部字段
    下面方法,可以查询全部字段,也可以查询部分字段

    //sql
    SELECT id, userId, userName from user  //正确
    //sql
    SELECT id, userId from user //正确
    dataQuery.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(User.class));
    

    下面的方法,必须查询全部字段

    //sql
    SELECT id, userId, userName from user  //正确
    //sql
    SELECT id, userId from user //错误
    Query dataQuery = em.createNativeQuery(sqlStr.toString(), User.class);
    

    相关文章

      网友评论

          本文标题:jpa查询注意点及异常解决集合

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