0

従来のデータベース スキーマの上に Spring Security を実装する際の問題により、ユーザー ID はシーケンスによって生成される必要がありますが、VARCHAR(9) として保存されます。そのため、データベース側で変換して、これをコード側 (シーケンス/トリガー/etc) から見えないようにします。

ただし、私の知る限り、次のように GenerationType.SEQUENCE を介してマップすると、これは爆発します。

@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="MYGENERATOR")

フィールドはトリガーによって入力されるため、GenerationType.IDENTITY でマッピングできますか?

@GeneratedValue(strategy=GenerationType.IDENTITY)

ありがとう、ジェイソン

4

1 に答える 1

1

これはうまくいくかもしれません。識別子フィールドのタイプを文字列に設定し、GenerationType.IDENTITY 戦略を使用できます。

1 つ確認しておくべきことは、生成された ID が JDBC API (PreparedStatement.getGeneratedKeys) を使用して取得できることです。このページには、それを機能させるために必要なものの詳細が記載されています。

于 2012-07-12T17:35:08.427 に答える