jPQLで次のクエリを使用して、住所列が空の人にクエリを実行します。
List rl = em.createQuery( "select o from Person as o where o.address IS NULL")。setFirstResult(0).setMaxResults(50).getResultList(); .. ..
このコード行は常に空のリストを返します。明らかに、テーブルには条件に一致するエントリがあります。
クラスPerson {アドレスアドレス;文字列名; ...}クラスアドレス{文字列名; ...}
このjpqlステートメントの何が問題になっているのか誰か知っていますか?前もって感謝します。
前述のように、アドレス列が空の場合は、IS NULLの代わりにIS EMPTY式を使用してみてください。
em.createQuery( "SELECT o FROM Person o where (o.address.id IS NULL OR o.address.id = 0").setMaxResults(50).getResultList();
Idのデータ型に従って制約を確認してください。
また、setFirstResult(0)は結果をスキップせず、それがないと、デフォルトで一致するすべての結果がフェッチされるため、言及する必要はありません。