entityManagerを使用して@GeneratedValueを含むテーブルに複数のレコードを挿入する

安全

私は休止状態に不慣れで、自動生成されたID列を持つSAMPLEテーブルにデータを挿入するタスクで立ち往生しています。

EntityManagerオブジェクトを使用してオブジェクトをdbに永続化していますが、エラーが発生します。

クラスのIllegalArgumentException:SamplePk、プロパティのセッターメソッド:id_sample

予期されるタイプ:java.lang.Integer、実際の値:org.hibernate.id.IdentifierGeneratorHelper $ 2

以下の私のコードを見つけてください

Entity Class

@Entity(name="SAMPLE")
@IdClass(SamplePk.class)
@Table(name="TABLE_SAMPLE")
public class Sample{
    protected Integer id_sample;
        protected Integer test;
public Sample() {}
    
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id_sample")
    public Integer getId_sample() {
        return id_sample;
    }
    public void setId_gem_import(Integer id_sample) {
        this.id_sample= id_sample;
    }

        //remaining setter getter in place
}
SamplePK Class

public class SamplePK implements Serializable{
    private static final long serialVersionUID = 3688605897932153056L;
    protected Integer id_sample;
        protected Integer test;
    
    public SamplePK() {
    }
    public SamplePK(Integer id_sample) {
        super();
        this.id_sample= id_sample;
                this.test= test;

    }
    //setter getter in place
    //equals() , hashcode() and other constructor in place
}
persistence logic 

UserTransaction transaction = (UserTransaction)new InitialContext().lookup("java:comp/UserTransaction");
transaction.begin();

//util class provides EntityManager 
ConnectionUtil conn = new ConnectionUtil(); 
EntityManager entityManager = conn.getEntityManager();

//objList is List object holding List of obj[]
//obj[] contains data for a row to be insert in SAMPLE Table : id_sample at 0, test at 1
ListIterator itr = objList.listIterator();
int index = 0;
while(itr.hasNext()) {
index++;
Object[] obj = (Object[])itr.next();

Sample objSample = new Sample();
objSample.setTest(obj[1]);
                                
entityManager.persist(objSample );
if(index%batch_size==0) {  //batch_size is initialized to 50
    entityManager.flush();
    entityManager.clear();
    }
}
transaction.commit();
Usagi Miyamoto

複合キーの他のフィールドにも注釈を付けてみてください。このようなもの:

protected Integer id_sample;
protected Integer test;

@Id
@Column(name="id_sample")
public Integer getId_sample() {
    return id_sample;
}
public void setId_gem_import(Integer id_sample) {
    this.id_sample= id_sample;
}

@Id
@Column(name="test")
public Integer getTest() {
    return test;
}
public void setTest(Integer test) {
    this.test= test;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

linq2sqlを使用して複数のファイルを含む複数のテーブルにレコードを挿入する方法

分類Dev

JPAを使用して複数のテーブルにレコードを挿入する

分類Dev

Pkをインクリメントして、歌うレコードを使用してテーブルに複数のレコードを挿入する

分類Dev

forループを使用してデータベーステーブルに複数のレコードを挿入する方法

分類Dev

vb.net MS Accessは、SQLクエリを使用してテーブルに自動番号の主キー列を含むレコードを挿入します

分類Dev

nodejspg-promiseライブラリを使用してuuid配列を含むレコードをpgテーブルに挿入する方法

分類Dev

テーブルに複数のレコードを挿入するLaravel

分類Dev

Javaを使用してMySQLテーブルにレコードを挿入する

分類Dev

forループを使用してSQLServerデータベースに複数のレコードを挿入する

分類Dev

XMLを使用してテーブルに複数の値を挿入する

分類Dev

結合を使用してテーブルに複数の行を挿入する

分類Dev

クエリビルダーlaravelを使用してmysqlに複数のレコードを挿入する方法

分類Dev

SSISパッケージを使用して、単一のExcelシートから複数のテーブルにレコードを挿入します

分類Dev

関連付けを使用して複数のテーブルに挿入を続編する(カスケード)

分類Dev

自動インクリメントIDを含むlinqクエリを使用してテーブルにレコードを挿入します

分類Dev

SCOPE_IDENTITYを使用して複数のテーブルに挿入する

分類Dev

Forループに複数のDoループを含むVBAコード全体を挿入する

分類Dev

Nhibernate hbmマッピングを使用して、同じIDを持つ複数のテーブルにレコードを挿入します

分類Dev

同時に複数のユーザーからのレコードをテーブルに挿入します

分類Dev

Pythonを使用して、日時と複数の行を含むSQLテーブルデータに挿入します

分類Dev

RowMapperを使用してレコードをテーブルに挿入します

分類Dev

POSTAPIを使用してBigQueryに複数のレコードを挿入します

分類Dev

forループに複数のレコードを挿入する

分類Dev

3つのテーブルと結合を使用して、他のレコードに含まれる文字列を含むレコードを削除する

分類Dev

既存のID列を持つテーブルに複数のレコードを挿入します

分類Dev

BeautifulSoupを使用して複数のテーブルを含むページをスクレイピングする

分類Dev

あるテーブルから別のテーブルにレコードを挿入してから、挿入されたレコードを削除します

分類Dev

複数の基準に応じて、あるテーブルの特定の列から別のテーブルにレコードを挿入する

分類Dev

2つのテーブルに複数のレコードを挿入するPostgres関数

Related 関連記事

  1. 1

    linq2sqlを使用して複数のファイルを含む複数のテーブルにレコードを挿入する方法

  2. 2

    JPAを使用して複数のテーブルにレコードを挿入する

  3. 3

    Pkをインクリメントして、歌うレコードを使用してテーブルに複数のレコードを挿入する

  4. 4

    forループを使用してデータベーステーブルに複数のレコードを挿入する方法

  5. 5

    vb.net MS Accessは、SQLクエリを使用してテーブルに自動番号の主キー列を含むレコードを挿入します

  6. 6

    nodejspg-promiseライブラリを使用してuuid配列を含むレコードをpgテーブルに挿入する方法

  7. 7

    テーブルに複数のレコードを挿入するLaravel

  8. 8

    Javaを使用してMySQLテーブルにレコードを挿入する

  9. 9

    forループを使用してSQLServerデータベースに複数のレコードを挿入する

  10. 10

    XMLを使用してテーブルに複数の値を挿入する

  11. 11

    結合を使用してテーブルに複数の行を挿入する

  12. 12

    クエリビルダーlaravelを使用してmysqlに複数のレコードを挿入する方法

  13. 13

    SSISパッケージを使用して、単一のExcelシートから複数のテーブルにレコードを挿入します

  14. 14

    関連付けを使用して複数のテーブルに挿入を続編する(カスケード)

  15. 15

    自動インクリメントIDを含むlinqクエリを使用してテーブルにレコードを挿入します

  16. 16

    SCOPE_IDENTITYを使用して複数のテーブルに挿入する

  17. 17

    Forループに複数のDoループを含むVBAコード全体を挿入する

  18. 18

    Nhibernate hbmマッピングを使用して、同じIDを持つ複数のテーブルにレコードを挿入します

  19. 19

    同時に複数のユーザーからのレコードをテーブルに挿入します

  20. 20

    Pythonを使用して、日時と複数の行を含むSQLテーブルデータに挿入します

  21. 21

    RowMapperを使用してレコードをテーブルに挿入します

  22. 22

    POSTAPIを使用してBigQueryに複数のレコードを挿入します

  23. 23

    forループに複数のレコードを挿入する

  24. 24

    3つのテーブルと結合を使用して、他のレコードに含まれる文字列を含むレコードを削除する

  25. 25

    既存のID列を持つテーブルに複数のレコードを挿入します

  26. 26

    BeautifulSoupを使用して複数のテーブルを含むページをスクレイピングする

  27. 27

    あるテーブルから別のテーブルにレコードを挿入してから、挿入されたレコードを削除します

  28. 28

    複数の基準に応じて、あるテーブルの特定の列から別のテーブルにレコードを挿入する

  29. 29

    2つのテーブルに複数のレコードを挿入するPostgres関数

ホットタグ

アーカイブ