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

Spring Data JPA如何在插入前忽略选择表

谭琛
2023-03-14

我的实体类有id字段,它使用@id,它的策略是null。默认策略是@generatedvalue(Strategy=generationtype.auto))

Hibernate: select dataeviden0_.id as id1_0_0_, dataeviden0_.block_hash as block_ha2_0_0_ from table1 dataeviden0_ where dataeviden0_.id=?
Hibernate: insert into table1 (block_hash, id) values (?, ?)

我可以自己控制id,我要jpa忽略选择后再插入,怎么办?

共有1个答案

伊光赫
2023-03-14

@Alien现在不再删除的答案基本上是正确的。该语句来自使用merge的Spring Data JPA,如果您使用persist,它应该消失。

为此,必须在存储库中公开persist方法。使用自定义方法实现和注入的EntityManager应该很容易。如果只使用该存储库保存新实例,您甚至可以根据需要为现有的save方法提供自定义实现。

 类似资料:
  • 嗨! 我需要扫描mysql(5.1)上的一个非常大的表, 该表大致如下: 我需要将main_id+键的所有唯一值获取到一个新表中。 使用以下查询需要花费大量时间(在非常快的服务器上3天后仍在运行): 所以我的问题是- 这会更快吗?

  • 问题内容: 我是Firebird的新手,我遇到了很多问题。我想在从另一个表中选择的表中插入各种行。 这是代码: ID应该从66开始自动递增。posid应该从1开始自动递增。 实际上,它没有插入任何内容。 我正在使用Firebird Maestro,并且刚刚打开了SQL脚本编辑器(在执行脚本时不会抛出任何错误消息)。 有谁能够帮我? 谢谢! 附加信息: 触发器应自动增加“ ID”列-但我不知道如何精

  • 我的表模式在H2 db中如下所示: 创建表如果不存在测试(id bigint not null,名称varchar(255),主键(id)); alter table Test add约束(如果不存在)Test_NAME UNIQUE(name); 如果name=Default条目不存在,则插入。 ID名称 1 ABC 它给出了一个错误,因为merge试图用新值进行更新。如果它发现'Default

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

  • 问题内容: 我正在使用PHP。 请问什么是将新记录插入具有唯一字段的数据库的正确方法。我正在批量插入很多记录,我只想插入新记录,并且我不想重复条目有任何错误。 有没有唯一方法可以首先进行SELECT并查看条目是否在INSERT之前已经存在-并且仅在SELECT不返回任何记录时才插入INSERT?我希望不是。 我想以某种方式告诉MySQL忽略这些插入而没有任何错误。 谢谢 问题答案: 如果在重复记录

  • 问题内容: 我正在尝试向表中插入其他行,该表要求从另一个表中检索一个值。以下是查询示例: 表的结构为。 我知道以上查询是错误的。有没有办法在插入行时从其他表中检索1个值? 问题答案: 一些DBMS会接受以下内容,并在SELECT语句的周围加上括号: