以下是我要保存(创建/更新)的实体模型:
@Entity
@Table(name = "EVENT")
public class EventEntity {
@Column(name = "NATURE")
private String nature;
@Column(name = "END_DATE")
private LocalDate endDate;
@Column(name = "NOTIFIED", insertable = false)
@NotNull
private Boolean notified;
// Getter - Setter - Builder
}
有两种方法可以更新此实体:
有没有办法告诉Hibernate忽略某个特定方法的某些字段?我需要创建两个不同的特定dao方法吗?我是否需要为经典的< code>save方法保留< code>updatable=false,并创建一个自定义方法来只更新< code>notified属性?最佳实践?
我建议你分开做。
>
对于第一次更新(所有字段,但已通知),我确实会使用updatable=false
,它告诉hibernate不要将该字段包含在SQL语句中。这样您只需要调用thas保存()方法。
对于第二次更新(仅通知字段),进行自定义查询:
@Modifying
@Query("UPDATE EventEntity e SET e.notified = ?2 WHERE e.id = ?1")
@Transactional
void customUpdate(UUID itemId, boolean notified);
(假设条件是ID)
这应该是你需要的方式。希望有帮助。
我正在为我的新项目使用android room持久性库。我想更新表的某些字段。我在我的中尝试过- 但是,当我尝试使用此方法进行更新时,它会更新实体的每个字段,在这些字段中,它与tour对象的主键值相匹配。我已使用 它正在工作,但在我的情况下会有很多查询,因为我的实体中有很多字段。我想知道如何更新某些字段(不是全部),如,id=1;(id是自动生成主键)。
我有一个批处理过程,它正在为一组实体重新计算数据。通过Hibernate从DB获取实体列表: 当流程运行时,某些实体似乎正在分离,导致两种症状: 当尝试获取惰性数据时,我得到一个异常: 在我的第一次尝试中,我试图通过调用inside
问题内容: 是否有更新的方式只有一些领域使用该方法的实体对象从春数据JPA? 例如,我有一个这样的JPA实体: 通过其CRUD存储库: 在Spring MVC中,我有一个控制器,该控制器获取用于更新它的对象: 我知道我可以使用来加载用户findOne,然后更改其名称并使用save…来更新它。但是,如果我有100个字段,而我想更新其中的50个字段,则更改每个值可能会很烦人。 有没有办法告诉类似“ 保
有没有办法使用Spring Data JPA中的方法只更新实体对象的某些字段? 我知道我可以使用加载用户,然后更改其名称并使用更新它...但是,如果我有100个字段,我想更新其中的50个,这可能是非常恼人的更改每个值… 难道没有办法告诉像“保存对象时跳过所有空值”这样的事情吗?
我想这可能是一个新手问题,但我仍然想知道一些答案。 假设存在实体:医院和医生(多对多)。假设在我的controller类中,我必须获取所有现有的医生和医院,然后在特定的医院雇佣一名医生 它当然不起作用,因为--据我所知--我已经在控制器中获取了所有的医生和医院,然后在hireDoctor方法中,我们打开了传递常规Java对象的trasaction,这些对象不在会话中。 我知道,我可以用一个特殊的身
我实现了两个 entites。规则实体和 RestCall 实体如下所示: RuleEntity RestCallEntity 我在 json 终结点中收到一条规则。比我将收到的 json 规则转换为规则实体并调用 当我只是更改规则的名称时,更新工作正常。但是当我更改它的名称时,它看起来像Hibernate尝试创建一个新的重新调用,即使它已经有一个ID。我得到以下异常。 原因:ruleentity