Привет, у нас есть сервер, работающий с Hibernate, классы проверяются с помощью Envers. Как это:Java Hibernate Envers UpdateLockingStrategy warning HHH000416 On AuditTable
package db.shared;
import interfaces.GuiEditableTable;
import interfaces.ListableEntity;
import interfaces.ShortDescriptable;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import javax.persistence.Version;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.envers.AuditTable;
import org.hibernate.envers.Audited;
import common.Identifiable;
import common.Preferences;
import common.entity.EntityConcurrency;
@Entity
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Audited
@AuditTable(schema=Preferences.SCHEMA_AUDIT, value=Lizenz.CLASS_NAME+Preferences.AUDIT_SUFFIX)
@Table(schema = Preferences.SCHEMA_SHARED, uniqueConstraints = { @UniqueConstraint(columnNames = { Lizenz.PROPERTY_LIZENZ_NAME }), @UniqueConstraint(columnNames = { Lizenz.PROPERTY_LIZENZ_NUMBER }) })
public class Lizenz extends common.entity.AbstractEntity
implements EntityConcurrency, ListableEntity, ShortDescriptable, GuiEditableTable
{
private static final long serialVersionUID = 589201271279697573L;
public static final String CLASS_NAME = "Lizenz";
public static final String PROPERTY_LIZENZ_NAME = "lizenzName";
public static final String PROPERTY_LIZENZ_NUMBER = "lizenzNummer";
public static final String MTM_PROPERTY_NAME = "lizenz";
public static final int LIZENZ_NUMBER_PADDING = 4;
@Id
@Column(name = Identifiable.PROPERTY_ID, columnDefinition = Preferences.DDL_TYPE_ID)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long ID;
@Version @Column(name = EntityConcurrency.PROPERTY_VERSION)
private long version;
private String lizenzName;
private String logo;
.
.
.
}
В ServerStart там предупреждения, как, что:
15:14:49 WARN [org.hibernate.dialect.lock.UpdateLockingStrategy] HHH000416: Write locks via update not supported for non-versioned entities [db.shared.Lizenz_AUD]
15:14:49 WARN [org.hibernate.dialect.lock.UpdateLockingStrategy] HHH000416: Write locks via update not supported for non-versioned entities [db.shared.Lizenz_AUD]
15:14:49 WARN [org.hibernate.dialect.lock.UpdateLockingStrategy] HHH000416: Write locks via update not supported for non-versioned entities [db.shared.Lizenz_AUD]
15:14:49 WARN [org.hibernate.dialect.lock.PessimisticReadUpdateLockingStrategy] HHH000416: Write locks via update not supported for non-versioned entities [db.shared.Lizenz_AUD]
15:14:49 WARN [org.hibernate.dialect.lock.PessimisticWriteUpdateLockingStrategy] HHH000416: Write locks via update not supported for non-versioned entities [db.shared.Lizenz_AUD]
Проблема в том, что мы только создали DB-таблицы для аудита, мы не имеем какой-либо АУДИТ Классы. Классы будут сгенерированы при запуске, и мы не обнаружили никаких @ audit-Options для подавления этих предупреждений. Предупреждения для нас неактуальны, потому что один раз пишут запись Audit-entry и никогда не обновляем ее, а 5 предупреждений на класс наводняют наш журнал.
Мы используем hibernate-envers-4.1.10.Final.jar и hibernate-core-4.1.10.Final.jar с java 1.7.
У кого-либо есть такая же проблема или вы знаете, как это исправить. Мы благодарны за любую помощь.
Проблема в том, как это сделать, потому что у нас нет Аудит-объект - только таблица. Объект генерируется Hibernate.Envers при запуске. –