ネイティブ クエリの結果クラスとして使用する JPA エンティティがあります。そのため、エンティティ自体は有効ではありません (テーブルがないため)。Hibernate 4.1.x を JPA プロバイダーとして使用します。これは、起動時にスキーマ検証を実行し、その結果失敗します (明示的なテーブルを指定しませんでした)。
org.hibernate.HibernateException: Missing table: MyEntity
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1272)
[...]
単一のエンティティのみのスキーマ検証を無効にする方法はありますか (JPA または hibernate アノテーションを使用するか、persistence.xml を変更することで)。
編集:結果としてエンティティを使用することを完全に避けることができますが、Hibernate はList<Object[]>
クエリ結果として返されます。これは技術的には機能しますが、使用するのは少し醜いです:
Query query = entityManager.get().createNativeQuery("SELECT node, last_update FROM mm_repl_monitoring.my_mm_nodes");
List<Object[]> statuses = query.getResultList();
言い換えれば、非エンティティ クラスにマップするネイティブ クエリでも使用できるマッピング サポートがあればいいのですが。