5

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;

    ...
}

HibernateSpatial 4.0.0 M1 で Hibernate 4.2.5 を使用しています

4

1 に答える 1

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;

  //...
}

Spring 3.1.3の上で実行され、SpringのLocalSessionFactoryBeanを使用して構成されたHibernate Spatial 4.0-M1でHibernate 4.1を使用しています。

于 2013-11-25T19:53:07.630 に答える