1
自分のDBに「検索エンジン」を作成しようとしています。EJB - インデックスに登録されていないフィールドで検索するには?
私はID、名前、および説明のテーブルを持っています。 私はIdを持っているとき、find()によってこのIdでレコードを得ることができます。 名前や説明でレコードを取得するにはどうしたらいいですか?名前をインデックスに設定しましたか?
ありがとうございました。
自分のDBに「検索エンジン」を作成しようとしています。EJB - インデックスに登録されていないフィールドで検索するには?
私はID、名前、および説明のテーブルを持っています。 私はIdを持っているとき、find()によってこのIdでレコードを得ることができます。 名前や説明でレコードを取得するにはどうしたらいいですか?名前をインデックスに設定しましたか?
ありがとうございました。
一般的に、フィールドの1つでテーブルを頻繁にクエリする必要があり、テーブルに多数のレコードが含まれている場合、そのフィールドのインデックスをデータベースに作成することをお勧めします。
他の質問について:名前、説明、またはその他のフィールドでレコードを取得する必要があり、JPAを使用している場合は、JPQLクエリ言語を使用してください。たとえば、次のクエリは、名前aName
を持つエンティティのリストを返します(フィールドid
、name
、description
で)実体がタイプ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についての詳細を読みます。