`
zhanyingle_1981
  • 浏览: 325672 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JPA Query 注意事项一

    博客分类:
  • Java
阅读更多

1.  错误: org.hibernate.QueryParameterException: could not locate named parameter[incidentTime]

     错误的语句:

String sql = "UPDATE SLIIncident o SET o.isDeleted = :isDeleted WHERE o.rawEventId = :rawEventId AND o.sliId = :sliId";
   Query query = em.createQuery(sql);
  
  query.setParameter("incidentTime", incident.getIncidentTime());
  query.setParameter("insertTime", incident.getInsertTime());
  query.setParameter("preEventTime", incident.getPreEventTime());
  query.setParameter("causeCode", incident.getCauseCode());
  query.setParameter("isDeleted", incident.getIsDeleted());
  query.setParameter("rawEventId", incident.getRawEventId());
  query.setParameter("sliId", incident.getSliId());
  
  query.executeUpdate();

 

原因:

     query.setParameter set了不需要的字段,不知道往哪插了。

 

正确代码:

 

    String sql = "UPDATE SLIIncident o SET o.isDeleted = :isDeleted WHERE o.rawEventId = :rawEventId AND o.sliId = :sliId";
   Query query = em.createQuery(sql);
  
  query.setParameter("isDeleted", incident.getIsDeleted());
  query.setParameter("rawEventId", incident.getRawEventId());
  query.setParameter("sliId", incident.getSliId());
  
  query.executeUpdate();

 

2. 

错误:

org.hibernate.hql.ast.ErrorCounter reportError- line 1:94: unexpected token: AND

java.lang.IllegalArgumentException: node to traverse cannot be null!

    

错误的语句:

//String sql = "UPDATE SLIIncident o SET o.isDeleted = :isDeleted WHERE o.rawEventId = :rawEventId AND o.sliId = :sliId";
  String sql = "UPDATE SLIIncident o SET o.incidentTime = :incidentTime AND o.insertTime = :insertTime AND o.preEventTime = :preEventTime AND o.causeCode = :causeCode AND o.isDeleted = :isDeleted WHERE o.rawEventId = :rawEventId AND o.sliId = :sliId";
  
  //String sql = "UPDATE SLIIncident o SET o.incidentTime = :incidentTime,o.insertTime = :insertTime, o.preEventTime = :preEventTime, o.causeCode = :causeCode, o.isDeleted = :isDeleted WHERE o.rawEventId = :rawEventId AND o.sliId = :sliId";
  
  Query query = em.createQuery(sql);
  
  query.setParameter("incidentTime", incident.getIncidentTime());
  query.setParameter("insertTime", incident.getInsertTime());
  query.setParameter("preEventTime", incident.getPreEventTime());
  query.setParameter("causeCode", incident.getCauseCode());
  query.setParameter("isDeleted", incident.getIsDeleted());
  query.setParameter("rawEventId", incident.getRawEventId());
  query.setParameter("sliId", incident.getSliId());
  
  query.executeUpdate();

原因:

     同时更新多个字段时不需要AND,而应该是逗号,

 

正确代码:

 

    //String sql = "UPDATE SLIIncident o SET o.isDeleted = :isDeleted WHERE o.rawEventId = :rawEventId AND o.sliId = :sliId";
  //String sql = "UPDATE SLIIncident o SET o.incidentTime = :incidentTime AND o.insertTime = :insertTime AND o.preEventTime = :preEventTime AND o.causeCode = :causeCode AND o.isDeleted = :isDeleted WHERE o.rawEventId = :rawEventId AND o.sliId = :sliId";
  
  String sql = "UPDATE SLIIncident o SET o.incidentTime = :incidentTime,o.insertTime = :insertTime, o.preEventTime = :preEventTime, o.causeCode = :causeCode, o.isDeleted = :isDeleted WHERE o.rawEventId = :rawEventId AND o.sliId = :sliId";
  
  Query query = em.createQuery(sql);
  
  query.setParameter("incidentTime", incident.getIncidentTime());
  query.setParameter("insertTime", incident.getInsertTime());
  query.setParameter("preEventTime", incident.getPreEventTime());
  query.setParameter("causeCode", incident.getCauseCode());
  query.setParameter("isDeleted", incident.getIsDeleted());
  query.setParameter("rawEventId", incident.getRawEventId());
  query.setParameter("sliId", incident.getSliId());
  
  query.executeUpdate();

 

 

0
0
分享到:
评论

相关推荐

    详解Spring Data JPA使用@Query注解(Using @Query)

    使用 @Query 注解的注意事项 * 在使用 @Query 注解时,需要注意查询语句的正确性,否则可能会导致查询失败。 * 在使用参数时,需要使用 @Param 注解来指定参数的名称。 * 在使用原生 SQL 语句时,需要设置 native...

    jpa需要的jar包

    7. **注意事项** - **性能优化**: 需要合理设置缓存策略、批处理和懒加载,避免N+1查询问题。 - **事务边界**: 正确管理事务边界,确保数据一致性。 - **内存管理**: 避免大量实体对象加载到内存,可能导致内存...

    JPA教程和入门实例

    **Java持久化API(JPA)教程与...- `注意.txt`文件可能包含了一些学习和使用JPA时需要注意的事项,务必仔细阅读。 通过深入学习和实践,你将能够掌握JPA并有效地应用于实际的Java项目中,提升数据访问和管理的效率。

    黑马程序员 jpa详解视频教程配套源代码 笔记 jar包 很全的

    总结来说,这个资源包提供了一个全面的JPA学习路径,从理论到实践,涵盖了JPA的核心概念、操作数据库的方法以及实战中的注意事项。通过观看黑马程序员的视频教程,结合源码、笔记和jar包,你将能够深入理解和掌握...

    09_传智播客JPA详解_使用JPQL语句进行查询

    10. **最佳实践**:分享在实际开发中使用JPQL时应遵循的一些最佳实践和注意事项,帮助开发者写出高效、易维护的代码。 通过这个课程,开发者将能够熟练掌握JPQL的使用,从而在Java应用开发中更加灵活地处理数据库...

    spring整合JPA

    **Spring 整合 JPA 知识点详解** Spring 框架是 Java 开发中最常用的轻量级框架之一,它提供了...在 Myeclipse6.x 开发环境中,遵循上述步骤和注意事项,可以轻松实现 Spring 与 JPA 的集成,提高开发效率和代码质量。

    EJB+JPA数据库持久层开发实践详解PDF

    7. 最佳实践和注意事项,如性能优化、避免N+1查询问题、事务策略选择等。 通过学习这份实践详解,开发者可以了解EJB和JPA如何协同工作,提升在企业级Java应用开发中的数据库持久化能力,从而更好地构建高效、稳定的...

    caveatemptor-jpa

    在这个上下文中,可能是指开发者在使用JPA时需要了解其潜在的陷阱或注意事项。 JPA是Java平台上的标准,它提供了一种方式来管理关系数据库中的对象,使得开发人员可以使用面向对象的方式来处理数据,而无需直接编写...

    5-Spring-Boot(五):spring data jpa的使用.docx

    #### 四、Spring Data JPA 的注意事项 1. **命名规则**:在使用基于方法名的查询时,必须遵循一定的命名规则。 2. **性能优化**:对于大规模数据处理时,需要注意性能优化问题,如合理设置缓存策略、使用懒加载等。...

    JPA注解文档

    - **注意事项**:实体类必须有一个公共无参数构造函数,以便JPA能够通过反射机制实例化对象。实体类可以继承,但继承链中非实体类也可以继承实体类,反之亦然。 2. **@Table** - **作用**:`@Table`注解用于指定...

    Hibernate-HQL-查询-Query资料

    - "HQL查询.doc"可能深入探讨了更复杂的查询技巧和注意事项。 - "HQL语句(结合实例).doc"则可能提供了具体的查询示例,帮助读者更好地理解和应用HQL。 通过学习这些文档,开发者可以掌握如何在Hibernate项目中...

    android-jpa:受JPA启发的Android ORM库

    ### 注意事项 1. **内存管理**:由于Android设备资源有限,需谨慎使用懒加载,防止因大量数据一次性加载导致内存溢出。 2. **性能优化**:对于频繁的读写操作,考虑使用SQLite的缓存机制来提高效率。 3. **版本...

    SpringJPA

    注意事项 - **事务管理**:正确配置事务边界,避免数据一致性问题。 - **性能优化**:注意懒加载可能导致的N+1问题,合理使用JOIN fetch优化查询。 - **异常处理**:理解和处理JPA及Hibernate抛出的各种异常,确保...

    mysql 分页

    四、注意事项 1. 在处理大量数据时,分页查询能有效提高页面加载速度,但也要注意避免内存溢出,合理设置每页大小。 2. 考虑到用户可能会直接输入页码,需处理负数或超出范围的情况。 3. 如果数据更新频繁,可能需要...

    hibernate分页

    五、性能优化与注意事项 - 分页查询时,应尽量避免在where子句中使用复杂的条件,这可能导致数据库无法使用索引,降低查询效率。 - 避免在分页查询中使用order by,除非索引已经覆盖了排序字段,否则可能影响性能...

    hql分页

    6. **注意事项** - 大规模分页时,避免使用`OFFSET`,因为它可能导致性能下降,尤其是在偏大的页码上。 - 考虑到查询效率,可以先计算总记录数,然后根据总页数和当前页计算出`setFirstResult()`的值。 通过以上...

    hibernate-entitymanager-3.3.0.GA

    7. **注意事项** - **空指针异常**:处理null值时要格外小心,避免因未初始化的实体属性导致的问题。 - **事务边界**:确保事务的正确性,防止数据不一致。 - **性能监控**:定期评估和优化数据库访问性能,如...

    基于hiberate的分页小例子

    六、注意事项 1. 分页查询时,确保排序字段(Order by)是索引覆盖的,以提升查询效率。 2. 在Spring Boot项目中,可以使用`spring-data-jpa`的`Page`对象,它包含了分页信息,如总页数、总记录数等。 3. 考虑到内存...

    hibernate所需的jar包

    5. 注意事项: - 注意版本兼容性:Hibernate与其他依赖库(如数据库驱动)需保持版本一致,避免出现不兼容问题。 - 谨慎使用懒加载:虽然能提高性能,但过度使用可能导致N+1查询问题。 - 优化查询:避免大面积的...

Global site tag (gtag.js) - Google Analytics