2016-06-13 10 views
0

JavaプロジェクトでSQLLightデータベースを使用してHibernateを使用しています。私は、データベース・アクションを実行するために、単純なJavaクラスを使用します。Javaコードを使用してHibernateテーブルインデックスを作成します。

public class Db 
{ 
    private SessionFactory sessionFactory; 
    private Session session; 

private Db() 
    { 
     sessionFactory = new Configuration().configure().buildSessionFactory(); 
    } 

    private void open() 
    { 
     session = sessionFactory.openSession(); 
     session.beginTransaction(); 
    } 
... 
} 

Evrythingが正常に動作しますが、今私は私のテーブルのフィールドのいずれかにインデックスを作成する必要があります - DocName

CREATE TABLE [Doc] ([Id] INTEGER PRIMARY KEY AUTOINCREMENT, [DocName] TEXT, [Job] TEXT) 

Javaコード内にインデックスを作成して既存のデータベースファイルに適用する必要があります。これを行う方法?

これはjava 1.4で行う必要があります。

答えて

1

コードファースト(こちらはちゃんとtutorialです)を使用してください。

HibernateはJPAプロバイダとして実行できます。 Entity Frameworkに似たJPAでは、POJOを作成し、フィールドに注釈を付けて、永続性の処理方法をJPAプロバイダに指示します。これはあなたのDAOで次のようになり、コードで

@Id // @Id indicates that this it a unique primary key 
@GeneratedValue // @GeneratedValue indicates that value is automatically generated by the server 
private Long id; 

@Column(length = 255) // the optional @Column allows us makes sure that the name is limited to a suitable size and is unique 
private String docName; 

@Column(length = 255) 
private String job; 

インデックスDOCNAMEには、あなたは、DAOに注釈を経由してインデックスを追加する必要があります。More info

@Table(name = "Doc", indexes = { @Index("docName")}) 
@Entity 
class Doc{ 
     @Index(docName = "docName") 
     private String docName; 

} 
関連する問題