Я использую простой java для спящего автономного приложения с Hibernate Envers для получения обновлений изменений, внесенных в столбцы таблицы, я использую sql-сервер в качестве моей базы данных, и я новичок в настоящее время.Hibernate envers не обновляет добавленные вручную столбцы в REVINFO с аннотацией
Вот мой "CustomRevisionEntity.java"
@Entity
@AuditTable("REVINFO")
@RevisionEntity(CustomRevisionListener.class)
public class CustomRevisionEntity {
@Column (name = "USERNAME", length = 50)
private String username;
@Id
@GeneratedValue
@RevisionNumber
@Column (name = "REV", unique = true, nullable = false)
private int id;
@Temporal(TemporalType.DATE)
@Column (name = "REVTSTMP", nullable = false, length = 15)
@RevisionTimestamp
private Date timestamp;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getTimestamp() {
return timestamp;
}
public void setTimestamp(Date timestamp) {
this.timestamp = timestamp;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
CustomRevisionListener.java
public class CustomRevisionListener implements RevisionListener {
public void newRevision(Object revisionEntity) {
CustomRevisionEntity revision = (CustomRevisionEntity) revisionEntity ;
String userName = Hibernate_Connection.getloggedUser();
revision.setUsername(userName);
}
}
hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;instance=SQLEXPRESS_2012;DatabaseName=ETS_V11_DEV;integratedSecurity=true</property> -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> -->
<property name="show_sql">true</property>
<property name="use_sql_comments">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping class= "Domain_hibernate_SQLServer.Domain"/>
<mapping class= "Domain_hibernate_SQLServer.CustomRevisionEntity"/>
</session-factory>
</hibernate-configuration>
Проблема: При использовании файла hbm.xml затем он добавляет значение в столбец имени пользователя, , но пока я использую аннотацию для g что время принимает нулевое значение, поскольку оно не распознает дополнительное свойство столбца, которое я добавил, но При использовании аннотации его вставка нулевых значений в столбцах имени пользователя
Он принимает значения, подобные этому, с аннотацией при просмотре кода sql на консоли
/* insert org.hibernate.envers.DefaultRevisionEntity
*/ insert
into
REVINFO
(REVTSTMP)
values
(?)
Таблица имеет только три колонки, 1 является REV, т.е. автоинкремент, второй является REVTSTMP, й третий является USERNAME, и его не принимает имя пользователя, Что мне не хватает, если вам нужна дополнительная информация, то пожалуйста, напишите комментарий
исправлено, Silly Mistake, у меня была проблема с cfg.xml DOCTYPE –