我有一张叫AdminRole的表


ADMIN_ROLE_ID |描述| NAME |已归档


我需要从AdminRole中删除​​一条记录,因为管理员角色非常重要。我需要执行软删除而不是硬删除。为此,我尝试使用@SqlDelete休眠注释。我的实体类是这样的:

@Entity
@table(name="ADMINROLE")
@SqlDelte(sql="UPDATE ADMINROLE SET ARCHIVED = 'Y' WHERE ADMIN_ROLE_ID=?")
public class AdminRole{
@column(name="ADMIN_ROLE_ID" )
protected Lond id;
@column(name="DESCRIPTION" )
protected String description;
@column(name="NAME" )
protected String name;
...
...
}


当我创建管理员角色ARCHIVED成功设置为N并显示在前端时,如果Y中的ARCHIVED记录在前端不可见,则必须在前端显示记录结束。但是问题是当我尝试从前端删除N时,由于此记录显示在前端,因此admin role并未设置为ARCHIVED

在DAO中

public AdminDAO {

    protected EntityManager manager;

    public void remove(Serializable entity){
        manager.remove(entity)
    }
}


为什么Y对我不起作用?有人可以帮助我吗?日志文件未引发任何异常。什么时候该@SqlDelete将被执行?

最佳答案

我自己解决了这个问题,问题只在我这边,我不小心更新了另一个表,现在我为adminrole表更改了

之前

@SqlDelte(sql="UPDATE ROLE SET ARCHIVED = 'Y' WHERE ROLE_ID=?")



@SqlDelte(sql="UPDATE ADMINROLE SET ARCHIVED = 'Y' WHERE ADMIN_ROLE_ID=?")

发布此问题后,我意识到自己的错误。

09-26 06:32