gpt4 book ai didi

java - 在 hibernate 中的一个公共(public)位置进行逻辑删除

转载 作者:行者123 更新时间:2023-11-29 05:22:43 26 4
gpt4 key购买 nike

我正在为我的应用程序使用 Spring 和 Hibernate。

我只允许在需要设置字段 isActive=false 的应用程序中进行逻辑删除。我没有在所有实体中重复相同的字段,而是创建了一个基类,其中包含“isActive”的属性和 getter-setter。

因此,在删除期间,我调用了 update() 方法并将 isActive 设置为 false。

我无法让它工作。如果有人有任何想法,请告诉我。

基础实体

public abstract class BaseEntity<TId extends Serializable> implements IEntity<TId> {

@Basic
@Column(name = "IsActive")
protected boolean isActive;

public Boolean getIsActive() {
return isActive;
}

public void setIsActive(Boolean isActive) {
isActive= isActive;
}
}

子实体

@Entity(name="Role")
@Table(schema = "dbo")
public class MyEntity extends BaseEntity {
//remaining entities
}

hibernate 实用类

public void remove(TEntity entity) {

//Note: Enterprise data should be never removed.
entity.setIsActive(false);
sessionFactory.getCurrentSession().update(entity);
}

最佳答案

尝试将 setIsActive 方法中的代码替换为:

public void setIsActive(Boolean isActive) {
this.isActive = isActive;
}

在您的代码中使用不带 this 的变量名可能会产生歧义...

我认为你还应该在你的抽象类中添加@MappedSuperclass注解来实现字段继承。

关于java - 在 hibernate 中的一个公共(public)位置进行逻辑删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24038072/

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