前提・実現したいこと
Spring Data JPA + mySQLでシステムを作っています。
@GeneratedValueを設定したfieldに、任意の値を設定したいです。
発生している問題・エラーメッセージ
以下のようなprimary keyを自動採番するEntityとリポジトリを作成しました。
@Entity @Table(name = "tbl") @Data public class Tbl { @Id @GenerateValue(strategy=GenerationType.IDENTITY) @Column(name = "id") private Long id; @Column(name = "value") private Long value; } public interface TblRepository extends JpaRepository<Tbl, Long> { }
これを使って以下のようなコードを書いたところ、idが自動採番されました。
@Autowired private TblRepository tblRepository; Tbl tbl = new Tbl(); tbl.setValue(123L); tblRepository.save(tbl);
今回、指定されたidでレコードを作成する必要が出たため、以下のようにidを設定してみたのですが、
設定した値が無視され、自動採番された値がidに設定されました。
Tbl tbl2 = new Tbl(); tbl2.setId(999L); tbl2.setValue(456L); tblRepository.save(tbl2);
idがnullだったら自動採番、null以外が設定されていたらその値を使用してinsertしたいと考えているのですが
そのようなことは可能でしょうか?
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー