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();
分享到:
相关推荐
使用 @Query 注解的注意事项 * 在使用 @Query 注解时,需要注意查询语句的正确性,否则可能会导致查询失败。 * 在使用参数时,需要使用 @Param 注解来指定参数的名称。 * 在使用原生 SQL 语句时,需要设置 native...
7. **注意事项** - **性能优化**: 需要合理设置缓存策略、批处理和懒加载,避免N+1查询问题。 - **事务边界**: 正确管理事务边界,确保数据一致性。 - **内存管理**: 避免大量实体对象加载到内存,可能导致内存...
**Java持久化API(JPA)教程与...- `注意.txt`文件可能包含了一些学习和使用JPA时需要注意的事项,务必仔细阅读。 通过深入学习和实践,你将能够掌握JPA并有效地应用于实际的Java项目中,提升数据访问和管理的效率。
总结来说,这个资源包提供了一个全面的JPA学习路径,从理论到实践,涵盖了JPA的核心概念、操作数据库的方法以及实战中的注意事项。通过观看黑马程序员的视频教程,结合源码、笔记和jar包,你将能够深入理解和掌握...
10. **最佳实践**:分享在实际开发中使用JPQL时应遵循的一些最佳实践和注意事项,帮助开发者写出高效、易维护的代码。 通过这个课程,开发者将能够熟练掌握JPQL的使用,从而在Java应用开发中更加灵活地处理数据库...
**Spring 整合 JPA 知识点详解** Spring 框架是 Java 开发中最常用的轻量级框架之一,它提供了...在 Myeclipse6.x 开发环境中,遵循上述步骤和注意事项,可以轻松实现 Spring 与 JPA 的集成,提高开发效率和代码质量。
7. 最佳实践和注意事项,如性能优化、避免N+1查询问题、事务策略选择等。 通过学习这份实践详解,开发者可以了解EJB和JPA如何协同工作,提升在企业级Java应用开发中的数据库持久化能力,从而更好地构建高效、稳定的...
在这个上下文中,可能是指开发者在使用JPA时需要了解其潜在的陷阱或注意事项。 JPA是Java平台上的标准,它提供了一种方式来管理关系数据库中的对象,使得开发人员可以使用面向对象的方式来处理数据,而无需直接编写...
#### 四、Spring Data JPA 的注意事项 1. **命名规则**:在使用基于方法名的查询时,必须遵循一定的命名规则。 2. **性能优化**:对于大规模数据处理时,需要注意性能优化问题,如合理设置缓存策略、使用懒加载等。...
- **注意事项**:实体类必须有一个公共无参数构造函数,以便JPA能够通过反射机制实例化对象。实体类可以继承,但继承链中非实体类也可以继承实体类,反之亦然。 2. **@Table** - **作用**:`@Table`注解用于指定...
- "HQL查询.doc"可能深入探讨了更复杂的查询技巧和注意事项。 - "HQL语句(结合实例).doc"则可能提供了具体的查询示例,帮助读者更好地理解和应用HQL。 通过学习这些文档,开发者可以掌握如何在Hibernate项目中...
### 注意事项 1. **内存管理**:由于Android设备资源有限,需谨慎使用懒加载,防止因大量数据一次性加载导致内存溢出。 2. **性能优化**:对于频繁的读写操作,考虑使用SQLite的缓存机制来提高效率。 3. **版本...
注意事项 - **事务管理**:正确配置事务边界,避免数据一致性问题。 - **性能优化**:注意懒加载可能导致的N+1问题,合理使用JOIN fetch优化查询。 - **异常处理**:理解和处理JPA及Hibernate抛出的各种异常,确保...
四、注意事项 1. 在处理大量数据时,分页查询能有效提高页面加载速度,但也要注意避免内存溢出,合理设置每页大小。 2. 考虑到用户可能会直接输入页码,需处理负数或超出范围的情况。 3. 如果数据更新频繁,可能需要...
五、性能优化与注意事项 - 分页查询时,应尽量避免在where子句中使用复杂的条件,这可能导致数据库无法使用索引,降低查询效率。 - 避免在分页查询中使用order by,除非索引已经覆盖了排序字段,否则可能影响性能...
6. **注意事项** - 大规模分页时,避免使用`OFFSET`,因为它可能导致性能下降,尤其是在偏大的页码上。 - 考虑到查询效率,可以先计算总记录数,然后根据总页数和当前页计算出`setFirstResult()`的值。 通过以上...
7. **注意事项** - **空指针异常**:处理null值时要格外小心,避免因未初始化的实体属性导致的问题。 - **事务边界**:确保事务的正确性,防止数据不一致。 - **性能监控**:定期评估和优化数据库访问性能,如...
六、注意事项 1. 分页查询时,确保排序字段(Order by)是索引覆盖的,以提升查询效率。 2. 在Spring Boot项目中,可以使用`spring-data-jpa`的`Page`对象,它包含了分页信息,如总页数、总记录数等。 3. 考虑到内存...
5. 注意事项: - 注意版本兼容性:Hibernate与其他依赖库(如数据库驱动)需保持版本一致,避免出现不兼容问题。 - 谨慎使用懒加载:虽然能提高性能,但过度使用可能导致N+1查询问题。 - 优化查询:避免大面积的...