[解決済み] JPAによるインデックス(非ユニークキー)の指定
2022-11-30 03:19:32
質問
どのようにフィールドを定義するのですか?
email
のように、JPAアノテーションを使用してインデックスを持つフィールドを定義するにはどうしたらよいでしょうか。一意でないキーが必要な
email
に一意でないキーが必要です。このフィールドには一日に文字通り何百万ものクエリがあり、キーがないと少し遅くなるからです。
@Entity
@Table(name="person",
uniqueConstraints=@UniqueConstraint(columnNames={"code", "uid"}))
public class Person {
// Unique on code and uid
public String code;
public String uid;
public String username;
public String name;
public String email;
}
私はhibernate特有のアノテーションを見たことがありますが、私たちはまだhibernateとdatanucleusのどちらかを決定しているので、ベンダー特有の解決策は避けようとしています。
UPDATEしました。
JPA 2.1では、このようなことができます。参照してください。 アノテーション @Index はこの位置では許可されません
どのように解決するのですか?
JPA 2.1ではできるはずです。
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Index;
import javax.persistence.Table;
@Entity
@Table(name = "region",
indexes = {@Index(name = "my_index_name", columnList="iso_code", unique = true),
@Index(name = "my_index_name2", columnList="name", unique = false)})
public class Region{
@Column(name = "iso_code", nullable = false)
private String isoCode;
@Column(name = "name", nullable = false)
private String name;
}
更新 : もし2つ以上のカラムを持つインデックスを作成する必要がある場合は、カンマを使用することができます。例えば
@Entity
@Table(name = "company__activity",
indexes = {@Index(name = "i_company_activity", columnList = "activity_id,company_id")})
public class CompanyActivity{
関連
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
ブートレイヤーの初期化中にエラーが発生しました java.lang.module.FindException: モジュールが見つかりません
-
無効な文字定数
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
API の戻り値を処理するために ResponseEntity を使用する
-
Junitのユニットテストエラー
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
eclipse にリソースリーク:'in' が閉じない
-
java 365*1000*60*60*24 計算問題
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
executeQuery()でデータ操作文が発行できない。解決方法
-
プロジェクトの依存関係を解決できない。
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
API の戻り値を処理するために ResponseEntity を使用する
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
Java の double データ型における 0.0 と -0.0 の問題
-
アクセス制限の解決方法: ---- in Java