gpt4 book ai didi

java - 使用 JPA 进行更新时如何排除实体字段

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:41:24 24 4
gpt4 key购买 nike

有没有办法让字段在更新操作时非持久化,但在使用 JPA - Hibernate 4 创建操作时持久化?

我这样试过

@Transient
@Id
@Column(name = "USER_NAME", nullable = false, length = 75)
private String userName;

但是使用@Transient 注释,该字段在所有 CRUD 操作中都是 transient 的,我想要一种方法来指定仅在此操作上是持久的(创建)。

有办法吗?

谢谢!

最佳答案

您需要将@Column注解的updatable属性设置为false:

@Column(name = "USER_NAME", nullable = false, length = 75, updatable= false)
private String userName;

updatable 属性指示 Hibernate 从生成的 UPDATE SQL 语句中忽略此列。

我删除了 @Transient@Id 注释。

如果此列是您的 PK(映射到实体标识符),那么您只能在 INSERT 期间设置它,因为 Hibernate 不允许您更新实体标识符(updatable 属性是在这种情况下是多余的)。

关于java - 使用 JPA 进行更新时如何排除实体字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28363625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com