2012-04-29 64 views
1

我试图在我的数据库上创建“搜索引擎”。EJB - 如何通过非索引字段进行搜索?

我有一个ID,名称和说明表。 当我有一个ID我可以通过find()获得这个ID的记录。 但是,如果我想通过名称或描述获取记录,我该怎么做?我是否必须将名称设置为索引?

谢谢。

回答

1

作为一般规则,如果您必须经常通过其某个字段查询表并且该表包含许多记录,则最好在数据库中为该字段创建索引。

关于其他问题:如果您需要按名称,描述或其他字段获取记录,并且您使用的是JPA,则使用JPQL查询语言。例如,假设实体是MyEntity型(带领域idnamedescription)下面的查询将返回实体的名单与名aName

EntityManager em = ...   // get the entity manager 
Query q = em.createQuery("SELECT me FROM MyEntity me WHERE me.name = :name"); 
q.setParameter("name", aName); // aName is the name you're looking for 
List<MyEntity> results = (List<MyEntity>) q.getResultList(); 

了解更多关于Java持久性API的tutorial

相关问题