如何在Hibernate中创建INSERT IGNORE查询?
Hibernate必须在具有唯一字段的表中进行插入。 我想忽略重复的条目,以便我的程序继续运行。 在MySQL中,我只想说INSERT IGNORE
,但我无法弄清楚如何在Hibernate中做到这一点。 有什么建议么? 谢谢!
如果您使用的是简单的SQL查询,请使用以下代码。
Query query = session.createSQLQuery("INSERT IGNORE INTO user (name,username) VALUES (:name,:username)"); query.setParameter("name", name); query.setParameter("username", username); int i= query.executeUpdate();
您是否尝试过使用@SQLInsert
注释 ? 这样,您可以使用自己的自定义SQL覆盖Hibernate语句并使用INSERT IGNORE
:
@SQLInsert(sql="INSERT IGNORE INTO CUSTOMER(id,name) VALUES(?,?)") class Customer{ ... }
- 在多对多单向映射中保留枚举集
- 将提取更改为EAGER似乎可以修复无关的会话缓存问题
- Hibernate与HSQLDB的连接
- 在hibernate中包含log4j属性文件,以显示带有值而不是问号的查询
- Hibernate 5中不推荐使用createCriteria方法
- Spring 4.3.0.RELEASE + Hibernate 5.2.0.Final + JPA Repository
- 找不到多个上下文的属性:property-placeholder
- hibernate插入到集合会导致删除,然后再次插入集合中的所有项目
- CollectionOfElements上的java.util.ConcurrentModificationException