2017-04-06 1 views
1

테이블이 Book이고 column(book_id)이 하나만있는 테이블이 Serial 인 경우. Informix와 openejb 4.7.2를 사용하고 있습니다. 제가 DB에 새 항목을 만들려면 노력하고 있어요 때 , 나는 오류JPG를 사용하여 단일 열의 테이블을 직렬로 삽입 할 때

OpenEJB - EjbTransactionUtil.handleSystemException: org.hibernate.exception.SQLGrammarException: could not prepare statement 
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not prepare statement 
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1387) ~[hibernate-entitymanager-4.2.19.Final.jar:4.2.19.Final] 
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1310) ~[hibernate-entitymanager-4.2.19.Final.jar:4.2.19.Final] 
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1316) ~[hibernate-entitymanager-4.2.19.Final.jar:4.2.19.Final] 
    at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:881) ~[hibernate-entitymanager-4.2.19.Final.jar:4.2.19.Final] 
    at org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:149) ~[openejb-core-4.7.2.jar:4.7.2] 

Book.java

@Entity 
@Table(name = "book") 
public class Book { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name = "book_id", nullable = false) 
    private short bookId; 

    public short getBookId() { 
     return bookId; 
    } 

    public void setBookId(short bookId) { 
     this.bookId = bookId; 
    } 

} 

public class DocumentTemplateDAO{ 
    @Override 
    public Book create(Book entity) { 
     LOG.debug("Entity is created {} ", entity); 
     this.entityManager.persist(entity); 
     this.entityManager.flush(); 
     return entity; 
    } 
} 

코드 책을

Book book = new Book(); 
documentTemplateDAO.create(book); 

쿼리를 만들 얻고 그 실행될 것입니다

01 23,969,

답변

0

이 가능한 해결책 : 자동 증가를 유발하는 0을한다 (이 책의 ID가 데이터베이스에 어떤 경우)

  • 인포믹스 SERIAL, 그것은 = GenerationType.AUTO을 @GeneratedValue (전략에 영향을 미칠한다).

  • IBM은 Informix 용 특정 Hibernate Dialect를 개발했습니다.이 언어는 http://members.iiug.org/opensource/에서 다운로드 할 수 있습니다.

죄송합니다. 지금은 더 이상 필요하지 않습니다. 잘하면, 당신을 올바른 길로 인도 할 것입니다.

관련 문제