当前位置: 首页 > 知识库问答 >
问题:

“插入忽略”或“重复密钥更新”使用@query&@修改而不使用nativeQuery或save()或saveAndFlush()JPA Hibernate

单昊穹
2023-03-14

我的例子如下:

Person是一个简单的实体,有3个字段“长id、字符串名称、整数年龄”,并映射到相应的Person表,每个表有3列

@Repository
public interface PersonRepository extends JpaRepository<Person,Long> {

    @Modifying
    @Query(? - what goes here - ?)
    public int modifyingQueryInsertPerson(@Param("id")Long id, @Param("name")String name, @Param("age")Integer age);
}

共有1个答案

屠华辉
2023-03-14

我找到了这个解决方案,但它不适用于“插入忽略”或“重复密钥更新”:

@Repository
public interface DualRepository extends JpaRepository<Dual,Long> {
    @Modifying
    @Query("insert into Person (id,name,age) select :id,:name,:age from Dual")
    public int modifyingQueryInsertPerson(@Param("id")Long id, @Param("name")String name, @Param("age")Integer age);
}
 类似资料:
  • 我的例子如下: Person是一个简单的实体,有3个字段“Long id、String name、intger age”,并且映射到相应的Person表,上面有3列) 有没有办法通过使用@Query 重要的 请帮帮忙。

  • 我看过这些链接 如何使用JPA查询将数据插入到DB中?它使用nativeQuery=true 如何在Spring-Data中插入数据库?建议使用内置的save方法(还有一个saveAndFulsh()方法) 有没有办法只使用@query&@modifying(即不使用本机SQL查询&nativequery=true,或save()或saveAndFlush()来完成插入?

  • 问题内容: 我没有看到重复的约束。它在哪里? 问题答案: 这很可能是因为您至少命名了一个约束,且其标识符与列相同: 应该为约束使用其他标识符,例如: 和表中的相同: 这些是我看到的仅有的三个,但可能还有其他我想念的。

  • 问题内容: 我有一个 我已经返回并命名的。一些值是空的,我需要将值添加到某些键中并将其发送回我的脚本。 我通过data.keyName访问现有值。如何添加或更改“数据”中某些键的值? 这是什么样子。 问题答案: 解码JSON后,结果就是一个JavaScript对象。只需像对待其他任何对象一样对其进行操作即可。例如:

  • 问题内容: 我需要从每日CSV文件中消耗大量数据。CSV包含约12万条记录。使用hibernate模式时,这会减慢爬行速度。基本上,当使用saveOrUpdate()时,hibernate似乎在每个单独的INSERT(或UPDATE)之前执行SELECT。对于使用saveOrUpdate()持久存储的每个实例,在实际的INSERT或UPDATE之前发出SELECT。我能理解为什么要这样做,但是在进

  • 问题内容: 我有责任将我们的代码从sqlite切换到postgres。我遇到麻烦的查询之一复制到下面。 当有重复的记录时,就会出现此问题。在此表中,两个值的组合必须唯一。我在其他地方使用了一些plpgsql函数来执行更新或插入操作,但是在这种情况下,我可以一次执行多个插入操作。我不确定如何为此编写存储的例程。感谢您提供的所有sql专家的所有帮助! 问题答案: 有 3个 挑战。 您的查询在表和之间没