2013-09-23 28 views
5

Próbuję użyć Envers, aby skonfigurować inspekcję na moich obiektach hibernacji. Jednak dostaję błąd:Inspekcja za pomocą Envers i Hibernate Spatial 4

Could not determine type for: geometry, at table: Location_AUD, for columns: [org.hibernate.mapping.Column(geom)]

Hibernate jest zadowolony z typem geometrii używam bez audytu, ale Envers wydaje się mieć problemy z nim.

Czy ktoś wie, czy Envers współpracuje z Hibernate Spatial 4? Jeśli tak, być może ktoś zauważy problem z moim kodem.

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

    ... 
} 

Używam Hibernacja 4.2.5 z HibernateSpatial 4.0.0 M1

+0

Mam taki sam błąd w przestrzeni. Proszę powiedz mi, jeśli znajdziesz odpowiedź. Ja również. –

+0

Nie znalazłem jeszcze rozwiązania. Zastanawiam się, aby powiedzieć envers, aby nie kontrolowali kolumny Geometry i nie tworzyli niestandardowego gettera, który zazdrości następnie audytów (np. Zwróć ciąg Geom jako WKT). – Luke

Odpowiedz

4

miałem dokładnie ten sam problem. Ręczne dodanie adnotacji Hibernate @TypeDef dla typu geometrii działa, jak mi się wydaje. Z jakiegokolwiek powodu envers nie pobiera automatycznie odwzorowania, nawet jeśli posiada rdzeń Hibernuj. Więc dla naszej aplikacji, mam:

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

    //... 
} 

używamy Hibernate 4.1 z Hibernate przestrzenny 4.0-M1 działa na szczycie wiosną 3.1.3 i skonfigurować przy użyciu Wiosny LocalSessionFactoryBean.

+0

Dzięki za to. Zakończyliśmy ręczną kontrolę tabeli Lokalizacja (z geometrią). Przyjmuję odpowiedź, ponieważ wydaje się, że jest to rozwiązanie (chociaż tego nie przetestowałem). – Luke

+1

Miałem ten sam problem i to naprawiło to dla mnie. – Pythos