首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么JPA实体类会有一个带有实体名称和下划线的类

为什么JPA实体类会有一个带有实体名称和下划线的类
EN

Stack Overflow用户
提问于 2014-04-28 01:16:23
回答 3查看 11.7K关注 0票数 9

我是JPA的新手,我已经创建了一个类,如下所示

代码语言:javascript
运行
复制
/**
 * 
 */
package programme;

import javax.persistence.Access;
import javax.persistence.AccessType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 * @author anoop
 *
 */
@Entity
@Table(name="course")
@Access(AccessType.FIELD)
public class programme {
    @Id private int id;
    private String name;
    private int year;
    @Transient private String comments;

    //getters and setters for the fields.
}

我注意到还有另一个类,它的名称是我的实体java类Programme.java,带有下划线,即Programme_.java。这个类是什么?为什么会生成这个类。有什么办法可以阻止它的产生吗?

Programme_.java类的代码如下所示。

代码语言:javascript
运行
复制
package programme;

import javax.annotation.Generated;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;

@Generated(value="Dali", date="2014-04-27T21:32:59.433+0530")
@StaticMetamodel(programme.class)
public class programme_ {
    public static volatile SingularAttribute<programme, Integer> id;
    public static volatile SingularAttribute<programme, String> name;
    public static volatile SingularAttribute<programme, Integer> year;
    public static volatile SingularAttribute<programme, String> comments;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-28 09:38:33

这就是你的“规范元模型”。它可以与JPA Criteria API一起使用,如JPA2.x规范(第6.2节)所述。

要阻止Eclipse生成这些类:编辑Eclipse项目属性> JPA > Canonical metamodel (JPA 2.0) > Source folder -将文件夹的值设置为"“。

票数 14
EN

Stack Overflow用户

发布于 2015-09-01 05:07:28

这是我对persistence.xml所做的更改,以避免生成带有下划线的Java文件和类文件(这导致了我的a problem):

代码语言:javascript
运行
复制
diff --git a/examples/javaee7/src/main/resources/META-INF/persistence.xml b/examples/javaee7/src/main/resources/META-INF/persistence.xml
index 86d3c0c..a477432 100644
--- a/examples/javaee7/src/main/resources/META-INF/persistence.xml
+++ b/examples/javaee7/src/main/resources/META-INF/persistence.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
     <persistence-unit name="javaee7addressbookPersistenceUnit" transaction-type="JTA">
-        <exclude-unlisted-classes>false</exclude-unlisted-classes>
+        <exclude-unlisted-classes>true</exclude-unlisted-classes>
         <properties>
             <property name="javax.persistence.schema-generation.database.action" value="create"/>
         </properties>
     </persistence-unit>
 </persistence>

在此更改之前,将生成以下文件:

  • target/generated-sources/annotations/com/greptilian/addressbookmvc/javaee7/Person_.java
  • target/classes/com/greptilian/addressbookmvc/javaee7/Person_.class
票数 0
EN

Stack Overflow用户

发布于 2021-12-08 13:42:13

除了ones生成之外(如Brian Vosburgh所提到的),JPA元模型可以在maven构建期间生成,例如由JPA Static Metamodel Generator生成。如果maven依赖项

代码语言:javascript
运行
复制
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-jpamodelgen</artifactId>
    <version>CURRENT-VERSION</version>
</dependency>

已使用(例如,在pom.xml中列出)。

JPA元模型可以与JPA一起使用,另请参阅here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23326456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档