使用Envers和Hibernate Spatial 4进行审计

Luk*_*uke 5 java hibernate auditing hibernate-envers hibernate-spatial

我正在尝试使用Envers在我的Hibernate实体上设置审核.但是,我收到错误:

无法确定类型:几何,在表:Location_AUD,对于列:[org.hibernate.mapping.Column(geom)]

Hibernate很满意我在没有审核的情况下使用的几何类型,但是Envers似乎遇到了麻烦.

有谁知道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;

    ...
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Hibernate 4.2.5和HibernateSpatial 4.0.0 M1

Dom*_* A. 4

我遇到了同样的问题。为几何类型手动添加 Hibernate@TypeDef注释似乎对我有用。GeometryType无论出于何种原因,即使 Hibernate 核心会自动获取映射,envers 也不会自动获取映射。因此,对于我们的应用程序,我有:

@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;

  //...
}
Run Code Online (Sandbox Code Playgroud)

我们使用 Hibernate 4.1 和 Hibernate Spatial 4.0-M1,运行在 Spring 3.1.3 之上,并使用 Spring 的 LocalSessionFactoryBean 进行配置。