Аудит с помощью Envers и Hibernate Spatial 4
Я пытаюсь использовать Envers для настройки аудита в моих объектах Hibernate. Однако я получаю сообщение об ошибке:
Не удалось определить тип для: geometry, в таблице: Location_AUD, для столбцов: [org.hibernate.mapping.Column (geom)]
Hibernate доволен типом геометрии, который я использую без одитинга, но у Энверса, похоже, с этим проблемы.
Кто-нибудь знает, работает ли Envers с Hibernate Spatial 4? Если это произойдет, возможно, кто-то может обнаружить проблему с моим кодом.
@Audited
@Entity
public class Location {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_LOCATION")
@SequenceGenerator(name = "SEQ_LOCATION", sequenceName = "SEQ_LOCATION", allocationSize = 1)
Long id;
@Type(type = "org.hibernate.spatial.GeometryType")
Geometry geom;
...
}
Я использую Hibernate 4.2.5 с HibernateSpatial 4.0.0 M1
1 ответ
У меня была точно такая же проблема. Добавление Hibernate вручную @TypeDef
аннотация для типа геометрии, похоже, сработала для меня. По какой бы то ни было причине, Энверс не подхватывает автоматически GeometryType
отображение, хотя ядро Hibernate делает. Итак, для нашего приложения у меня есть:
@Entity
@Audited
@Table(name = "geo_element")
@ForeignKey(name = "FK_geo_element__id__element")
@TypeDef(name = "geometry", typeClass = GeometryType.class)
public class GeoElement extends Element {
@Type(type = "geometry")
@Column(name = "data")
private Point data;
//...
}
Мы используем Hibernate 4.1 с Hibernate Spatial 4.0-M1, работающим поверх Spring 3.1.3 и настроенного с использованием Spring LocalSessionFactoryBean.