Java 使用Envers和Hibernate Spatial 4进行审核

Java 使用Envers和Hibernate Spatial 4进行审核,java,hibernate,hibernate-envers,auditing,hibernate-spatial,Java,Hibernate,Hibernate Envers,Auditing,Hibernate Spatial,我正在尝试使用Envers在我的Hibernate实体上设置审核。但是,我得到了一个错误: 无法确定列:[org.hibernate.mapping.Column(geom)]在表:Location\u AUD处的:geometry的类型 Hibernate对我在没有审计的情况下使用的几何体类型很满意,但Envers似乎在这方面遇到了麻烦 有人知道Envers是否与Hibernate Spatial 4配合使用吗?如果是这样的话,也许有人能发现我代码中的问题 @Audited @Entity p

我正在尝试使用Envers在我的Hibernate实体上设置审核。但是,我得到了一个错误:

无法确定列:[org.hibernate.mapping.Column(geom)]在表:Location\u AUD处的:geometry的类型

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;

    ...
}

我将Hibernate 4.2.5与Hibernate空间4.0.0 M1一起使用,我遇到了完全相同的问题。为几何体类型手动添加Hibernate
@TypeDef
注释似乎对我很有效。无论出于何种原因,即使Hibernate core自动拾取映射,envers也不会自动拾取
GeometryType
映射。因此,对于我们的申请,我有:

@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进行配置。

我在Spatial上也有同样的错误。如果你找到答案,请告诉我。我也会的。我还没有找到解决办法。我正在考虑告诉envers不要审核Geometry列,并创建一个自定义getter,envres然后审核它(例如返回一个geom字符串作为WKT)。谢谢。我们最终手动审核了位置表(带有几何体)。我会接受答案,因为它似乎是解决方案(虽然我还没有测试过)。我有同样的问题,这为我解决了它。