JPA / Hibernate:JPAクエリのコードベースの検証
質問
jpaクエリをプログラムで検証する正しい方法は何ですか。 Hibernateは、エンティティのすべての注釈ベースの名前付きクエリを検証します。しかし、エラーをチェックするために、プログラムで作成されたjpaクエリでこの検証ルーチンを呼び出すにはどうすればよいですか?
@Entity public class Foo { @Id public int id; public String name; }
main(...) { Query q = getEntityManager().createQuery("select e from " + Foo.class.getName() + " e where e.name = 'x' "); // validate q here }
解決
しないでください。本番環境と同じスキーマを持つ実際のデータベースを使用して、コードの統合テストを実行します。
考えてみてください:不正な形式のクエリを作成した場合、それはプログラミングのバグです。情報をどうしますか? JPAクエリの形式が正しくないことをユーザーに伝えますか?現実的にできることは、エラーをログに記録し、ユーザーに「何か悪いことが起こった」と伝えることだけです。とにかく後でログをチェックすると、不正なクエリであることがわかります...
編集
不正なデータ-javadoc here は、 HibernateException
をスローできることを示唆していますが、よくわかりません検証以外の文字列でできること...
他のヒント
createQueryを使用するか、JPQLの作成中にクラス名を入力する必要があります。
所属していません StackOverflow