1

DBに「検索エンジン」を作成しようとしています。

ID、名前、説明を含むテーブルがあります。Id がある場合、find() によってこの Id を持つレコードを取得できます。しかし、名前または説明でレコードを取得したい場合、どうすればよいでしょうか? 名前をインデックスとして設定する必要がありましたか?

ありがとう。

4

1 に答える 1

1

原則として、フィールドの 1 つによってテーブルを頻繁にクエリする必要があり、テーブルに多くのレコードが含まれている場合は、データベースにそのフィールドのインデックスを作成することをお勧めします。

他の質問について: 名前、説明、またはその他のフィールドでレコードを取得する必要があり、JPA を使用している場合は、JPQLクエリ言語を使用します。たとえば、エンティティのタイプがMyEntity(フィールドidが 、namedescription) であると仮定すると、次のクエリは名前が のエンティティのリストを返します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 に答える