1

我正在尝试在我的数据库上创建“搜索引擎”。

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

谢谢。

4

1 回答 1

1

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

关于另一个问题:如果您需要按名称、描述或其他字段获取记录,并且您正在使用 JPA,那么请使用JPQL查询语言。例如,假设实体是类型MyEntity(带有字段id, name, description),以下查询将返回带有名称的实体列表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 Persistence API 的更多信息。

于 2012-04-29T02:50:14.933 回答