gpt4 book ai didi

hibernate - 在不检查@Id 的情况下确定实体是否是新的

转载 作者:行者123 更新时间:2023-12-04 14:57:21 24 4
gpt4 key购买 nike

有没有办法确定给定的例如实体类:

@Entity
class A {

String name;

}

boolean method(Object anyEntity) {
// How can I check here, if this entity is completely new
}

通过 new,我的意思是有人调用了 new A() 甚至可能设置了名称,但从未保存或持久化。

通常可以检查 id,但我想要一种不需要 id 或 getId() 方法的解决方案。

基本上,这个实体是否被持久化到数据库中,即使是在分离模式下。

@Version 或 getVersion 也不是一个令人满意的解决方案。

也许是分离的 || isAttached 可能有效,但我不确定如何在 Hibernates API 上进行该调用。

编辑:

还要澄清一下,我不控制实体,所以我不能向它们添加任何字段。解决方案应该尝试利用底层机制来确定这一点。

最佳答案

如果任何 API 方法不可用,那么我们可能可以使用 来实现它听众: .这将适用于 JPA/hibernate 。

像下面这样:

@Transient 
private boolean isNew;

@PostPersist
@PostLoad
public void setWhetherNew() {
isNew = true;
}

关于hibernate - 在不检查@Id 的情况下确定实体是否是新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31807454/

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