无法在Hibernate Envers中更改revinfo表名

时间:2016-10-14 20:03:28

标签: java hibernate-envers

我去了那里写的文档(http://docs.jboss.org/envers/docs/#revisionlog),如果我们使用@RevisionEntity宣布一个实体,那么Hibernate将不会自己创建默认的revinfo表,而是映射用@注释的实体。 RevisionEntity。我还尝试创建名为revinfo的默认表,而不是自定义命名表作为RevisionTable。 以下是代码:

import javax.persistence.GeneratedValue;
import javax.persistence.Id;

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


@RevisionEntity

public class RevisionTable   {


@Id
@GeneratedValue
@RevisionNumber
private int id;

@RevisionTimestamp
private long timestamp;

public int getId() {
    return id;
}

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

public long getTimestamp() {
    return timestamp;
}

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


}

我不明白我哪里出错了。由于我是Hibernate Envers的新手,如果详细解释解决方案,将会很有帮助。

1 个答案:

答案 0 :(得分:3)

您的修订实体还需要包含以下注释:

@Entity
@Table(name="REVISIONS_TABLE_NAME")

它需要像其他任何实体一样通过hibernate进行扫描。请参阅文档,这是在那里指定的:http://docs.jboss.org/envers/docs/