2017-11-16 6 views
0

私は、JDBCを利用して既存のMySQL DBにアクセスし、JPAに変換中のアプリケーションを持っています。私のDBはすでに自動生成された主キーで設定されています。これがDBに既に定義されている場合、@Id、@GeneratedValue ...というエンティティクラスに注釈を付ける必要はありますか?注釈はすでに定義されているDBの主キー/インデックスとオーバーライド/競合しますか?JPA @Id @GeneratedValueアノテーションとDBの主キー?

答えて

0

私はあなたがMySQLで自家用機を使用していると仮定し、これらは自動生成されます。

次のコードは、必要なものを行います。

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Basic(optional = false) 
@Column(name = "table_id") 

GenerationType.IDENTITY戦略に注目してください?これにより、JPAは自動生成されたデータベース値を使用するように指示します。

+0

私はGenerationType.IDENTITY戦略を使用します。私はすでにオブジェクトIDの主キーw/auto_incrementで作成されたDBを持っています。 MySQL auto_incremementとJPA @GeneratedValueが競合しないことを確認したかっただけです。ありがとう! – HoosierDude

2

DBの主キーとJPA注釈と競合することはありません。主キーはすでに索引付けされているため、まったく問題はありません。

エンティティクラスにアノテーションを追加する必要があります。すでに定義されているDBと競合することはありません。新しいDB環境にシステムをデプロイする場合は、アノテーションが必要です。

+0

確認していただきありがとうございます。私はこれを事実と仮定したが、確認を得るのは良いと思った。 – HoosierDude

関連する問題