我是JPA的新手,我已经创建了一个类,如下所示
/**
*
*/
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类的代码如下所示。
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;
}
发布于 2014-04-28 01:38:33
这就是你的“规范元模型”。它可以与JPA Criteria API一起使用,如JPA2.x规范(第6.2节)所述。
要阻止Eclipse生成这些类:编辑Eclipse项目属性> JPA > Canonical metamodel (JPA 2.0) > Source folder -将文件夹的值设置为"“。
发布于 2015-08-31 21:07:28
这是我对persistence.xml所做的更改,以避免生成带有下划线的Java文件和类文件(这导致了我的a problem):
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>
在此更改之前,将生成以下文件:
发布于 2021-12-08 05:42:13
除了ones生成之外(如Brian Vosburgh所提到的),JPA元模型可以在maven构建期间生成,例如由JPA Static Metamodel Generator生成。如果maven依赖项
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>CURRENT-VERSION</version>
</dependency>
已使用(例如,在pom.xml中列出)。
JPA元模型可以与JPA一起使用,另请参阅here。
https://stackoverflow.com/questions/23326456
复制相似问题