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

在CRUDRespository中的Update或SaveorUpdate,是否有可用的选项

穆阳嘉
2023-03-14

我正在尝试用我的实体bean执行CRUD操作。CrudRepository提供了用于FindDeleteSave的标准方法,但没有类似于SaveorUpdate(Entity Entity)的通用方法,该方法反过来调用HibernateHibernateTemplate会话SaveorUpdate()方法。

crudrepository提供此功能的方式如下所示

@Modifying
@Query("UPDATE Space c SET c.owner = :name WHERE c.id = :id")
Integer setNameForId(@Param("name") String name, @Param("id")

但这不是通用的,需要为完整的表单字段编写。请让我知道是否有任何方法或我可以得到会话的Hibernate或对象的Spring HibernateTemplate来解决这个问题。

共有1个答案

袁泓
2023-03-14

方法的实现

S保存(%S实体)

from接口

代码如下所示:

public <S extends T> S save(S entity) {

    if (entityInformation.isNew(entity)) {
        em.persist(entity);
        return entity;
    } else {
        return em.merge(entity);
    }
}

可以在这里找到。注意,SimpleJarepository是在Spring Data JPA中自动实现CrudRepository的类。

因此,不需要提供自定义的saveorupdate()方法。Spring Data JPA已经覆盖了您。

 类似资料:
  • 问题内容: 我正在尝试使用“我的实体” Bean进行CRUD操作。提供标准的方法find,而但它有没有像一般的方法是依次呼叫或会话的方法。 该方法提供了这个功能就是用这样的 但这不是通用的,需要为完整的表单字段编写。请让我知道是否有任何方法或者我可以获取Hibernate会话或Spring HibernateTemplate的对象来解决此问题。 问题答案: 方法的执行 从界面 自动执行你想要的操作

  • 我试图摆脱写歪斜,并尝试使用可序列化的隔离级别,但我反而遇到了死锁。我发现可序列化隔离级别可能会导致死锁,原因如下: 这个级别类似于 REPEATABLE READ,但 InnoDB 隐式将所有纯 SELECT 语句转换为 SELECT ...锁定共享模式 所以,我试着像这样使用< code>REPEATABLE READ(没有id为“some_id”的行): 结果,我在连接2中收到了以下消息:<

  • 问题内容: 我正在向数据库中插入大约500 000个对象,其中许多对象是相同的(数据库中具有相同的主键表示),但是其他字段可能不同,因此我使用的方法是“更新-如果没有受影响的行-插入”。问题在于,有时对象的某些字段设置为null(无法从文件读取),并且已经在数据库中设置了某些值,因此我将其更新为null =删除它。)如何实现方案,即只更新字段不为空? 这是我现在如何做的一个简单示例: 问题答案:

  • 问题内容: 在MySQL中,我试图找到一种有效的方法来执行更新(如果表中已经存在一行),或者执行INSERT(如果该行不存在)。 到目前为止,我发现了两种可能的方法: 一个明显的例子:打开一个事务,选择以查找该行是否存在,如果不存在则进行INSERT,如果存在则进行UPDATE,提交事务 首先将IGNORE插入表中(如果该行已存在,则不会引发错误),然后进行更新 第二种方法避免了交易。 您认为哪一

  • 问题内容: 我想知道是否存在可以在C#中使用的类似jQuery的CSS选择器。 目前,我正在使用正则表达式解析一些html字符串,并认为在jQuery中使用诸如css选择器之类的东西来匹配所需元素会更好。 问题答案: 您肯定应该看到@jamietre的CsQuery。看看他对这个问题的答案! Fizzler和Sharp-Query提供了类似的功能,但是这些项目似乎被放弃了。

  • 我正在寻找一个Hamcrest Matcher到返回java的单元测试方法。util。可选类型。比如: 是否有任何可用的实现抛出Maven存储库?