5

Envers를 사용하여 Hibernate 엔티티에서 Auditing을 설정하려합니다.Envers와 Hibernate Spatial 4로 감사하기

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

최대 절전 모드 내가 감사하지 않고 사용하고 지오메트리 유형에 만족하지만, 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

+0

공간적으로 동일한 오류가 있습니다. 대답을 찾으면 말해주세요. 나는 또한 ~ 할 것이다. –

+0

아직 해결책을 찾지 못했습니다. 나는 지오메트리 열을 감사하지 말고 감사 (예 : WKT로 기하 구조의 String을 반환)를 다루는 커스텀 게터를 만드는 것을 말하고 있습니다. – Luke

답변

4

나는이 동일한 문제가되었다와 최대 절전 모드 4.2.5을 사용하고 있습니다. 지오메트리 타입에 대해 Hibernate @TypeDef 주석을 수동으로 추가하면 저에게 효과적이었던 것 같습니다. 어떤 이유로 든 envers는 Hibernate core가 수행하는 경우에도 자동으로 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; 

    //... 
} 

우리는 최대 절전 모드 4.1를 사용하고 최대 절전 공간 4.0-M1은 봄 3.1.3 위에 실행하고 Spring의 LocalSessionFactoryBean의를 사용하여 구성과 함께.

+0

고마워. 우리는 수동으로 Location 테이블을 (기하학과 함께) 감사했다. 솔루션으로 보일 때 대답을 받아 들일 것입니다 (테스트하지는 않았지만). – Luke

+1

나는 똑같은 문제를 겪었고 이것으로 나를 고쳤다. – Pythos