gpt4 book ai didi

java - Hibernate启用自定义修订版实体

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:00:11 26 4
gpt4 key购买 nike

我正在尝试扩展我的修订表。按照手册,我创建了自定义修订版实体:

package com.terminal.audit;

import org.hibernate.envers.DefaultRevisionEntity;
import org.hibernate.envers.RevisionEntity;
import org.hibernate.envers.RevisionNumber;
import org.hibernate.envers.RevisionTimestamp;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.util.Date;

@Entity
@RevisionEntity(CustomRevisionListener.class)
public class CustomRevisionEntity extends DefaultRevisionEntity {

@Id
@GeneratedValue
@RevisionNumber
private int id;

@RevisionTimestamp
private long timestamp;

private String username;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

@Transient
public Date getRevisionDate() {
return new Date(timestamp);
}

public long getTimestamp() {
return timestamp;
}

public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}
}

和自定义修订版侦听器:
package com.terminal.audit;

import org.hibernate.envers.RevisionListener;

public class CustomRevisionListener implements RevisionListener {

public void newRevision(Object revisionEntity) {
CustomRevisionEntity revision = (CustomRevisionEntity) revisionEntity;
revision.setUsername("username"); //for testing
}

}

我的休眠envers版本如下:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>3.6.10.Final</version>
</dependency>

问题是我的修订版实体没有被使用。有什么建议可能是错误的吗?

最佳答案

问题出在我的休眠配置中未映射的自定义实体。

<mapping class="com.terminal.audit.CustomRevisionEntity"/>

解决了)

关于java - Hibernate启用自定义修订版实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29825746/

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