java使用本机查询更新数据库中数据的最佳方法是什么
EntityManager em = entityManagerFactory.createEntityManager();
String str = String.format("UPDATE service.rules SET server_id='%2$s', alert_id='%3$s', rule_expression='%4$s', rule_frequncy='%5$s' WHERE rule_id='%1$s'",Rule.getRuleId(),Rule.getServerId(),Rule.getAlertId(),Rule.getRuleExpression(),Rule.getRuleFrequency());
Query query = em.createNativeQuery(str);
em.getTransaction().begin();
query.executeUpdate();
em.getTransaction().commit();
在这里,如果rule object中的一个数据在rule_id之外为null(这是必要的),那么这个查询将失败,因此我可以为rule object中的每个值设置字符串格式,并将它们合并,排除rule object中具有null值的数据,但有没有更好的方法来做到这一点?因为如果有100个柱,那么这将不是理想的过程。那么JPA有什么可以满足我要求的吗
# 1 楼答案
JPA的做法是创建实体映射:
spring jpa存储库:
以及处理持久性的服务:
然后像这样使用它:
JPA提供商将在幕后为您生成查询,无需复杂的本地查询