2016-06-13 5 views
0

Java 프로젝트에서 SQLLight 데이터베이스로 최대 절전 모드를 유지했습니다. 나는 데이터베이스 작업을 수행하는 간단한 자바 클래스를 사용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)을 사용해야합니다.

최대 절전 모드는 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; 

} 
관련 문제