2017-07-17 8 views
0

私はテーブルがです。スキーマAとシーケンスはスキーマB です。私はテーブルとスキーマの両方の権限を持つユーザーCを使用しています。デュアルからSelect B.sequence.nextvalを実行しているときに値を取得します。しかし、私がobjSession.saveOrUpdate(EntityObject);を使用しているときは、 NULLをシーケンスに注釈を付けたフィールドに挿入することはできません。以下はコードスニペットです。Hibernate - 別のスキーマのテーブルとシーケンス

ENITY CLASS:

@Entity 
@Table(name="BB_BPE.DRUGLISTINPUTFILE") 
public class DrugListInputFileEntity implements Serializable { 

    private static final long serialVersionUID = 1L; 

    @Id  
    @SequenceGenerator(name="DL_DRUGLISTINPUTFILE_ROW_ID_GENERATOR", sequenceName="BB_BPXAPP.ROW_ID_SEQ", allocationSize=1)  
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="DL_DRUGLISTINPUTFILE_ROW_ID_GENERATOR")  
    @Column(name="BPX_ROW_ID") 
    private long bpxRowId; 

    ... 

} 

はERROR:

Hibernate: select BB_BPXAPP.ROW_ID_SEQ.nextval from dual Hibernate: insert into BB_BPE.DRUGLISTINPUTFILE (BC_STATUS, BPX_ACTION_FLAG, BPX_CREATED_DATE, BPX_CREATED_USER, BPX_DUP_IND, BPX_HASH, BPX_ID, BPX_MODIFIED_DATE, BPX_MODIFIED_USER, BPX_ORIGINAL_ROW_ID, BPX_SET_ID, BPX_SOURCE, BPX_STATUS, BPX_VERSION, BPX_XML_FILE_ID, DRUGLISTINPUTFILE_ID, filedatetime, filesource, X_CLIENTDRUGLIST, xsdversion, BPX_ROW_ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) WARN SqlExceptionHelper:144 - SQL Error: 1400, SQLState: 23000 ERROR SqlExceptionHelper:146 - ORA-01400: cannot insert NULL into ("BB_BPE"."DRUGLISTINPUTFILE"."BPX_XML_FILE_ID")

+0

であなたのシーケンスジェネレータは、おそらく機能していません。コードを投稿してください。 –

+0

私はSqlQueryを使用してDualからB.sequence.nextvalを選択して実行し、値を取得できました。私は、Entityクラスの2つの異なるスキーマを使って何か間違っていると思います.Hibernateはそれを理解していますか? –

答えて

0

試し

@Id  
    @SequenceGenerator(name="DL_DRUGLISTINPUTFILE_ROW_ID_GENERATOR", 
         schema ="BB_BPXAPP" 
         sequenceName="ROW_ID_SEQ", 
         allocationSize=1)  
    @GeneratedValue(strategy=GenerationType.SEQUENCE, g 
         enerator="DL_DRUGLISTINPUTFILE_ROW_ID_GENERATOR")  
    @Column(name="BPX_ROW_ID") 
    private long bpxRowId; 
関連する問題