在没有@SQLInsert

时间:2019-05-27 09:49:27

标签: java mysql hibernate

我有一个表,该表使用4列作为主键,并具有其他4列以及一些数字数据。此数据经常更新。如果数据库中已经存在INSERT中指定的主键行,那么这4个数字行不需要更新,而不是替换旧数据,而是通过添加旧值和{{ 1}}查询。问题是我不想像在INSERT批注中那样使用任何在String中声明的PreparedStataments或SQL语句,但是我想在代码中动态地执行它,因为将会有更多的表这样,列数可能会频繁更改,因此我不想一直更新@SQLInsert。所以我想知道是否有一些Hibernate方法,或者我可以创建一个自定义的Hibernate配置类来更改默认插入而无需编写Strings语句。我还需要对数据库的查询尽可能少,理想情况下只有一个。

我已经尝试过:

  • String@SQLInsert一起使用
  • 选择行,获取数字字段,将其以代码形式添加到新的INSERT ON DUPLICATE KEY UPDATE对象中并保存新对象

这两种方法都可行,但是第一种方法需要一个带有语句的Entity,第二种方法需要对数据库进行两次查询,这会影响性能。

所以我只想用代码做同样的事情。我在下面提供String类供参考。我正在使用MySQL数据库。

Entity

0 个答案:

没有答案