我在Java项目中使用SQLLight数据库进行了Hibernate。我使用简单的 Java 类来执行数据库操作:
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 中完成。
你应该使用代码优先(这是一个不错的教程)。
Hibernate可以作为JPA提供程序运行。使用 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: 更多信息
@Table(name = "Doc", indexes = { @Index("docName")})
@Entity
class Doc{
@Index(docName = "docName")
private String docName;
}