5

継承する2つのクラスを持つエンティティとして使用されるJavaクラスがあります。このクラスにはいくつかのインデックスがありますが、これらのインデックスはデータベースに表示されませんでした。これは私のJavaスーパークラスコードです

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import javax.persistence.Version;
import javax.persistence.OneToMany;
import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name="service", uniqueConstraints = {@UniqueConstraint(columnNames={"name"})})
@org.hibernate.annotations.Table(appliesTo = "service", 
                                 indexes = { @Index(name = "service_name", columnNames = { "name" }), 
                                 @Index(name = "service_description", columnNames = { "description" }),
                                 @Index(name = "service_accessNumber", columnNames = { "access_number" })   
                     })
public class Service implements Serializable {

@Column(name="access_number",length = 95,nullable=false)
    String accessNumber;

@Column(length=80,nullable=false)
    String name;

@Column(length=140)
    String description;

}

誰かが私の問題が何であるかを知っていますか注:私は私のすべてのJavaクラスでこの問題を抱えていますが、これはそのうちの1つです。すべてのクラスのコードはこれと同じです

編集:私はxmlファイルを作成してgrailsプロジェクトに入れ、このプロジェクトを実行するとデータベースが作成されました

4

2 に答える 2

2

単一の@Tableアノテーションは機能しますか?試したことはありません。Hibernate@TableがJPA@Tableによってオーバーライドされる可能性があると思います。

列フィールドで@Indexアノテーションを試すこともできます。

public class Service implements Serializable {
    @Index(name="service_accessnumber")
    @Column(name="access_number",length = 95,nullable=false)
    String accessNumber;

    @Index(name="service_name")
    @Column(length=80,nullable=false)
    String name;

    @Index(name="service_description")
    @Column(length=140)
    String description;
}
于 2011-07-13T12:54:31.103 に答える
1

私は同じ問題を抱えていますが、それが解決策であり、私が試してみるとうまくいくことがわかりました、それはあなたを助けるかもしれません

in your DataSource.groovy file in your grails project make sure that under 
environment dbCreate is not equal to "update": if it is equal to "update", change 
it to "create".

これは問題なく動作します試してみてください

于 2011-07-18T09:27:48.363 に答える