禁用单个实体的JPA Hibernate架构验证

Thi*_*kel 7 java hibernate jpa hibernate-mapping

我有一个JPA实体,我用它作为本机查询的结果类.因此,该实体本身无效(因为它没有表格).我使用Hibernate 4.1.x作为我的JPA提供程序,它在启动期间执行模式验证,因此失败(我没有指定显式表):

org.hibernate.HibernateException: Missing table: MyEntity
    at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1272)
    [...]
Run Code Online (Sandbox Code Playgroud)

有没有办法只关闭单个实体的模式验证(使用JPA或hibernate注释或更改persistence.xml)?

编辑:我可以完全避免使用任何实体作为结果,但随后Hibernate将返回一个List<Object[]>as查询结果,这在技术上有效,但使用起来有点难看:

Query query = entityManager.get().createNativeQuery("SELECT node, last_update FROM mm_repl_monitoring.my_mm_nodes");
List<Object[]> statuses = query.getResultList();
Run Code Online (Sandbox Code Playgroud)

换句话说:如果有一些映射支持甚至可以用于映射到非实体类的本机查询,那将是很好的.

Kur*_*ois 0

我不确定为什么您要将该类注册为实体:它是一个自定义类,因此不必附加或从 hibernate/jpa 会话中分离。

  • 如果我不注册它所附加的实体,Hibernate 将无法识别我的 @NamedNativeQuery... (2认同)