2012-04-29 17 views
1

自分のDBに「検索エンジン」を作成しようとしています。EJB - インデックスに登録されていないフィールドで検索するには?

私はID、名前、および説明のテーブルを持っています。 私はIdを持っているとき、find()によってこのIdでレコードを得ることができます。 名前や説明でレコードを取得するにはどうしたらいいですか?名前をインデックスに設定しましたか?

ありがとうございました。

答えて

1

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

他の質問について:名前、説明、またはその他のフィールドでレコードを取得する必要があり、JPAを使用している場合は、JPQLクエリ言語を使用してください。たとえば、次のクエリは、名前aNameを持つエンティティのリストを返します(フィールドidnamedescriptionで)実体がタイプMyEntityであると仮定:

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(); 

tutorial内れるJava Persistence APIについての詳細を読みます。

関連する問題