gpt4 book ai didi

java - 让一个简单的 envers 示例工作起来很困难 : problem #34

转载 作者:行者123 更新时间:2023-12-01 16:11:34 25 4
gpt4 key购买 nike

我正在尝试获取一个简单的 envers工作的例子。我的 Java 代码可以工作(显然),我终于got the org.hibernate.tool.ant.EnversHibernateToolTask to work ,但它只输出“常规”数据的 SQL,而不是版本控制数据。我不知道下一步该做什么。

我可能会忘记包含哪些内容?

这是它输出的 SQL:{versioning-ddl.sql}

create table Event (
id bigint generated by default as identity (start with 1),
date timestamp,
title varchar(255),
primary key (id)
);

create table Person (
id bigint generated by default as identity (start with 1),
age integer not null,
firstname varchar(255),
lastname varchar(255),
primary key (id)
);

create table PersonEvent (
eventID bigint not null,
personID bigint not null,
primary key (eventID, personID)
);

alter table PersonEvent
add constraint FK489E5C25F6E47374
foreign key (personID)
references Event;

alter table PersonEvent
add constraint FK489E5C25729F3820
foreign key (eventID)
references Person;

我没有看到任何历史表/字段。以下是我的 hibernate.cfg.xml 文件中的相关条目:

<hibernate-configuration>
<session-factory>
...
<property name="hibernate.ejb.event.post-insert">org.hibernate.envers.event.AuditEventListener</property>
<property name="hibernate.ejb.event.post-update">org.hibernate.envers.event.AuditEventListener</property>
<property name="hibernate.ejb.event.post-delete">org.hibernate.envers.event.AuditEventListener</property>
<property name="hibernate.ejb.event.pre-collection-update">org.hibernate.envers.event.AuditEventListener</property>
<property name="hibernate.ejb.event.pre-collection-remove">org.hibernate.envers.event.AuditEventListener</property>
<property name="hibernate.ejb.event.post-collection-recreate">org.hibernate.envers.event.AuditEventListener</property>
<mapping class="com.example.test.hibernate.test1.Event"/>
<mapping class="com.example.test.hibernate.test1.Person"/>
</session-factory>
</hibernate-configuration>

以及 Java 类的相关部分:

 @Entity
@Audited
public class Event {
@Id
@GeneratedValue
private Long id;
private String title;
private Date date;
...
}


@Entity
@Audited
public class Person {
@Id
@GeneratedValue
private Long id;

private int age;
private String firstname;
private String lastname;
...
}

最佳答案

请务必使用“@Audited”注释您的实体 POJO。这也许可以解释为什么没有创建审计表的 DDL。

关于java - 让一个简单的 envers 示例工作起来很困难 : problem #34,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1033375/

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