使用Hibernate/JPA可以"无需选择更新"吗?

rog*_*ler 9 java sql hibernate jpa

因此,与JPA/Hibernate,您一定可以加载一个实体的"代理",而无需使用类似命中数据库session.load()entityManager.getReference().

但是,如果没有Hibernate从数据库初始化代理,似乎不可能在这些"代理"上设置属性.因此,如果没有选择,则无法仅保留更改的值(通过@DynamicUpdate实体).

我相信这就是它的方式,如果你想要update without select你必须自己滚动它.如果有人能证明我错了,我会很高兴的!我错过了什么吗?

nic*_*asl -1

AFAIK 选择是由合并操作执行的,其唯一目的是检查实体是否已存在于数据库中。如果这是正确的,您可以像他们在文档中所说的那样实现自己的验证:

\n\n
\n

实现 Persistable:如果实体实现 Persistable,Spring\n Data JPA 会将新检测委托给\n 实体的 isNew(\xe2\x80\xa6) 方法。有关详细信息,请参阅 JavaDoc。

\n\n

实现 EntityInformation:您可以通过创建 JpaRepositoryFactory 的子类并相应地重写 getEntityInformation(\xe2\x80\xa6) 方法来自定义 SimpleJpaRepository\n 实现中使用的 EntityInformation 抽象。然后,您必须将 JpaRepositoryFactory 的自定义实现注册为 Spring bean。请注意,这应该很少有必要。有关详细信息,请参阅\n JavaDoc。

\n
\n\n

https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.entity-persistence . saving-entites )

\n\n

我从来没有必要实现这样的事情,但我想你可以尝试一下......

\n\n

希望这对您有帮助

\n\n

干杯

\n\n

二尾

\n