我是PostGIS的新手,我正在使用带有Hibernate Spatial和Spring框架的PostGIS。问题是主键没有自动设置,在将数据插入数据库时,我收到以下错误:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.exception.ConstraintViolationException: ERROR: null value in column "id" violates not-null constraint
Detail: Failing row contains (null,name , country).
我已经在MySQL上测试了代码,它工作正常。但是,当使用Hibernate Spatial和PostGIS时,它会给我提到的错误。模型如下:
@Entity
@Table(name="person")
public class Person {
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String name;
private String country;
...
}
以下是插入数据的代码:
public void addPerson(Person p) {
Session session = this.sessionFactory.getCurrentSession();
session.persist(p);
}
以下是Maven中的依赖项:
postgis-jdbc: 1.5.2
postgresql: 8.4-702.jdbc3
hibernate-entitymanager: 4.0.0.Final
hibernate-core: 4.0.0.Final
hibernate-spatial: 4.0
commons-dbcp: 1.4
spring version: 4.0.3.RELEASE
和Hibernate配置:
<beans:bean id="hibernate4AnnotatedSessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="annotatedClasses">
<beans:list>
<beans:value>it.polimi.thesis.model.Person</beans:value>
</beans:list>
</beans:property>
<beans:property name="hibernateProperties">
<beans:props>
<beans:prop key="hibernate.dialect">org.hibernate.spatial.dialect.postgis.PostgisDialect
</beans:prop>
<beans:prop key="hibernate.show_sql">true</beans:prop>
<beans:prop key="hibernate.ddl-auto">update</beans:prop>
</beans:props>
</beans:property>
</beans:bean>
我将不胜感激任何帮助。如果需要任何其他信息,请告诉我。
好了,经过一番搜索,这个解决方案奏效了:
@Id
@Column(name="id", unique=true, nullable=false)
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy = "increment")
private int id;
我还添加了以下Hibernate配置:
<beans:prop key="hibernate.format_sql">true</beans:prop>
我在尝试通过hibernate spatial postgresql插件使用Grails 2.4.3和PostGIS数据库建立项目时遇到了很多麻烦。这是一个示例项目,除了默认插件外,没有安装其他插件。我首先启用了Postgres,并尝试将域保存到数据库中:一切正常。但一旦我启用hibernate spatial,它就不再工作了。 我和这个人有完全相同的问题。 我试着像他一样排除“hibernate
我正在从GlassFish 4迁移到WildFly8应用程序服务器并收到以下错误: 我使用Hibernate空间和PostGIS。对于Glassfish服务器,我将postgis jar添加到 /lib/ext文件夹以修复该错误。 我按照本教程中的步骤:https://gist.github.com/bjornharrtell/3054462,但它对我不起作用,即我将这些模块添加到 /org/hi
我对JPareSposition进行了本机查询,如: 生成的查询如下所示: 几何图形是表中包含空间数据的列。 但跟踪还表明查询存在解析错误: 但当我在数据库中执行查询时,我得到的结果是正确的。 为什么这个不匹配? 我最终可以通过以下方式解决这个问题:
我正在尝试使用postgis设置一个带有hibernate空间的项目。按照hibernate空间4.0-M1的教程,我首先遇到了无法找到依赖postgis-jdbc-1.5.3.jar的问题。就像有人在这里建议的那样,我使用了1.5.2版和教程编译。 但是如果我尝试运行它,我会出错。我将Hibernate的调试级别设置为调试und时偶然发现了以下问题: 错误是德语,但意味着“几何”类型不存在。 如
问题内容: 我正在使用Hibernate将对象保存在数据库中。我正在使用@GeneratedValue注释生成主键。 这是我的代码供应商类 我正在使用MS SQL Server 2012,其中有带有以下列的供应商表 未选中表示其NOTNULL = true,不允许使用空值。 这是我试图将数据保存到数据库中的代码。 运行此命令时,出现以下错误 请帮我解决一下这个。我是新来的hibernate并试图学
我有一个复合主键,其中一个键为空。实体中必须存在哪些注释,以便我可以使用此类JPA获取数据: 我尝试使用IdClass Annotation和EmbeddedId Annotation,但出现异常: 例如,使用了数据,但在实际项目中使用了类似的数据,因此无法用值替换null。