我是 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;
}
最佳答案
这是您的“规范元模型”。它可以与 JPA Criteria API 一起使用,如 JPA 2.x 规范(第 6.2 节)所述。
要阻止 Eclipse 生成这些类:编辑 Eclipse 项目属性 > JPA > Canonical 元模型 (JPA 2.0) > 源文件夹 - 将文件夹的值设置为“”。
关于java - JPA实体类为什么会有实体名加下划线的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23326456/