0

index(@Index) を追加したいのですが、できません。他のプロパティ(displayName)に@Indexを追加すると機能し、DBにこのインデックスを作成しますが、「連絡先」プロパティに追加すると機能しません。

@Entity
@Table(name = "TBL_PARTY")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "PARTY_TYPE", 
discriminatorType = DiscriminatorType.STRING)
@SequenceGenerator(name = "idGenerator", sequenceName = "SEQ_PARTY", 
  allocationSize = 1)
public  abstract class Party extends BaseEntity {
.....
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "PARTY_ID", nullable = false,unique = true)
@Cascade(value = {CascadeType.SAVE_UPDATE, CascadeType.DELETE})
**@Index(name = "IDX_CONTACTS")**
public List<Contact> getContacts() {
    return contacts;
}
**@Index(name="IDX_NAME)**
@Column(name = "DISPLAY_NAME")
public String getDisplayName() {
    return displayName;
}

何か提案はありますか?

4

1 に答える 1

0

コレクションの戻り値の型を使用しているため、 for@IndexColumnの代わりに使用する必要があると思います。@IndexgetContacts()

こちらのリンク@OrderedColumnで指定されているように、JPA API と互換性のあるアノテーションを使用することもできます。オブジェクトが埋め込み可能かどうかわからないので、 コレクション テーブルにマップされるため、 を使用しないことをお勧めします。Contact@ElementCollection

于 2013-07-06T14:27:02.713 に答える