У меня проблема с Envers. Во-первых, здесь мои два Hibernate классы:Включает добавление информации пользователя
child.java:
@Entity
@Audited
public class child {
@Id
private int id;
private String text;
@ManyToOne
@JoinColumn(name="child")
private testclass parent;
public int getId() {return id;}
public void setId(int id) {this.id = id;}
public String getText() {return text;}
public void setText(String text) {this.text = text;}
public testclass getParent() {return parent;}
public void setParent(testclass parent) {this.parent = parent;}
}
testclass.java:
@Entity
@Audited
public class testclass {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_template")
@SequenceGenerator(name="seq_template", sequenceName="tester_seq")
private int id;
private String text;
@OneToMany(mappedBy="parent")
private Set<child> childs;
public int getId() {return id;}
public void setId(int id) {this.id = id;}
public String getText() {return text;}
public void setText(String text) {this.text = text;}
public Set<child> getChilds() {return childs;}
public void setChilds(Set<child> childs) {this.childs = childs;}
}
Оба класса работают отлично, и информация аудита, как метка времени хранится Что ж.
Я хочу распространить сейчас информацию с именем пользователя аудита. Для этого я создал этот конфигурационный файл:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="ch.triwdata.envers.extensions">
<class name="ExtendedRevisionEntity" table="revinfo">
<id name="id" type="int">
<column name="rev" not-null="true"/>
<generator class="native"/>
</id>
<property name="timestamp" type="long" column="timestamp" />
<property name="username" type="string" not-null="true"/>
</class>
</hibernate-mapping>
есть, конечно, также файл конфигурация с спящей-конфигурацией, но я не думаю, что это важно.
Может ли кто-нибудь увидеть мой сбой, почему информация о пользователе не сохраняется?
С наилучшими пожеланиями Bjorn
PS: Может быть, это XML не хватает? Я добавил его с начала:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">jdbc:postgresql://localhost/postgres</property>
<property name="hibernate.connection.username">user</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="connection.password">****</property>
<property name="connection.pool_size">1</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">create-drop</property>
<mapping class="testclass"/>
<mapping class="child"/>
</session-factory>
</hibernate-configuration>
вы получаете любое исключение или что-то, вы можете разместить здесь? – Amogh
eclipse говорит, что: ОШИБКА: 3:60 Должен быть объявлен тип элемента «hibernate-mapping». ОШИБКА: 4:55 Должен быть объявлен тип элемента «класс». ОШИБКА: 5:34 Должен быть объявлен тип элемента "id". ОШИБКА: 6:40 Должен быть объявлен тип элемента "column". ОШИБКА: 7:31 Должен быть объявлен тип генератора «генератор». ОШИБКА: 9:69 Атрибут "type" должен быть объявлен для свойства типа элемента. ОШИБКА: 9:69 Атрибут "column" должен быть объявлен для свойства типа элемента. ОШИБКА: 10:60 Атрибут "type" должен быть объявлен для свойства типа элемента. ОШИБКА: 10:60 Атрибут "not-null" должен быть объявлен для свойства типа элемента. –
Хорошо, эта проблема исправлена ... Но таблица не создала столбец с именем пользователя. Он работает без проблем, но не создал имя пользователя столбца. –