Java 休眠环境-传递自定义字段

Java 休眠环境-传递自定义字段,java,hibernate,spring-boot,hibernate-envers,Java,Hibernate,Spring Boot,Hibernate Envers,我对Hibernate Envers有问题。如何将自定义字段传递到RevisionListener? 例如: public class CustomComment { public static final CustomComment INSTANCE = new CustomComment(); private static final ThreadLocal<String> storage = new ThreadLocal<>(); p

我对Hibernate Envers有问题。如何将自定义字段传递到RevisionListener? 例如:

public class CustomComment {

    public static final CustomComment INSTANCE = new CustomComment();

    private static final ThreadLocal<String> storage = new ThreadLocal<>();

    public void setComment(String comment) {
        storage.set(comment);
    }

    public String get() {
        return storage.get();
    }
}

我有一些带有@Audit注解的实体,一切正常。但我不知道如何传递自定义字段,如“comment”

那么,如何设置注释字段

编辑---------

我在ThreadLocal上找到了一些技巧,但是多个“活动用户”是安全的吗

例如:

public class CustomComment {

    public static final CustomComment INSTANCE = new CustomComment();

    private static final ThreadLocal<String> storage = new ThreadLocal<>();

    public void setComment(String comment) {
        storage.set(comment);
    }

    public String get() {
        return storage.get();
    }
}

比我想的一切都好。 但这种解决方案安全吗?如果两个或更多ppl“改变”了不同的实体,这是否有效

比我想的一切都好。但这种解决方案安全吗?如果2或 更多的ppl“改变”不同的实体,这是否有效

如果您在一个
@事务中执行更新,那么事务边界内的所有事情都将在同一个线程中发生,所以您都很好。

谢谢:)还有一件事,有没有“简单”的解决方案来选择“每个”
RevEntity
作为理想的实体ID?不客气:)我想不出“简单”的解决方案解决方案,因为所有审核表都引用
revision\u info
表上的主键,但不会有任何外键,否则无法删除任何内容
org.hibernate.envers.AuditReader
可能有一些您想要的,但不会这样做。
public class CustomComment {

    public static final CustomComment INSTANCE = new CustomComment();

    private static final ThreadLocal<String> storage = new ThreadLocal<>();

    public void setComment(String comment) {
        storage.set(comment);
    }

    public String get() {
        return storage.get();
    }
}

CustomComment.INSTANCE.setComment("custom comment");
someRepository.save(someEntity);