2017-04-06 7 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ですの

答えて

0

2潜在的な解決策:

  • InformixのSERIAL(これはあなたの本IDがデータベース内にあるものである場合)、自動インクリメントをトリガするためにゼロをとり、それが@GeneratedValue(戦略= GenerationType.AUTOに影響を与える必要があります)。

  • IBMは、Informix用の特定のHibernate方言を開発しました。そこでは、http://members.iiug.org/opensource/をダウンロードできます。

申し訳ありませんが、私はうまくいけば、それは正しい軌道に乗ってあなたを配置します、今より多くを持っていません。

関連する問題