如何在Hibernate中创建INSERT IGNORE查询?

时间:2013-11-10 19:07:53

标签: java hibernate

Hibernate必须在具有唯一字段的表中进行插入。我想忽略重复的条目,以便我的程序继续运行。在MySQL中我只想说INSERT IGNORE,但我无法弄清楚如何在Hibernate中做到这一点。有什么建议?谢谢!

2 个答案:

答案 0 :(得分:9)

您是否尝试过使用@SQLInsert annotation?这样,您可以使用自己的自定义SQL覆盖Hibernate语句并使用INSERT IGNORE

@SQLInsert(sql="INSERT IGNORE INTO CUSTOMER(id,name) VALUES(?,?)")
class Customer{
   ...
}

答案 1 :(得分:4)

如果您使用简单的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();