2016-04-12 41 views
0

PostGIS ile yeni ve PostGIS'i Hazırda Bekleme Alanı ve Yaylanma çerçevesiyle kullanıyorum. Sorun birincil anahtar otomatik olarak ayarlanır olmamasıdır ve DB veri eklerken aşağıdaki hatayı alıyorum:Hazırda Bekleme Konumsal ve PostGIS Birincil Anahtar Sayı

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). 

Ben MySQL kod sınanmıştır ve düzgün çalışır. Ancak, Hibernate Spatial ve PostGIS kullanırken, bana belirtilen hatayı verir. İşte

@Entity 
@Table(name="person") 
public class Person { 

    @Id 
    @Column(name="id") 
    @GeneratedValue(strategy=GenerationType.IDENTITY) 
    private int id; 
    private String name; 
    private String country; 
    ... 
} 

verileri eklemek için kod edilir:

public void addPerson(Person p) { 
    Session session = this.sessionFactory.getCurrentSession(); 
    session.persist(p); 
} 

Ve burada Maven içinde bağımlılıkları vardır:

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 

Ve Hazırda yapılandırmaları:

İşte modelidir
<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> 

Ben woul d herhangi bir yardım için teşekkür ederiz. Herhangi bir ek bilgi gerekiyorsa lütfen bana bildirin.

cevap

0

Tamam, bazı ara sonra bu çözelti çalıştı:

<beans:prop key="hibernate.format_sql">true</beans:prop> 
:

@Id 
@Column(name="id", unique=true, nullable=false) 
@GeneratedValue(generator="increment") 
@GenericGenerator(name="increment", strategy = "increment") 
private int id; 

Ayrıca aşağıdaki uyku yapılandırmaları eklendi