我正在尝试使用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;
...
}
我正在使用Hibernate 4.2.5和HibernateSpatial 4.0.0 M1
答案 0 :(得分:4)
我遇到了同样的问题。手动为几何类型添加Hibernate @TypeDef
注释似乎对我有用。无论出于何种原因,即使Hibernate核心存在,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进行配置。