java - JPA实体类为什么会有实体名加下划线的类

标签 java hibernate jpa database-schema

我是 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/

相关文章:

java - 如果 hsqlbd 处于服务器模式,则无法在初始化数据库上创建模式

hibernate - 一对一与多对一(单向)

java - oracle db id列自动生成JPA JSF

java - 使用 JPA 2.0 的 Self ManyToMany 和附加列

java - MySQL 日期和时间插入错误

java - 我试图在 TextToSpeech 运行时更改 textView 的背景,这可能吗?

java - 有没有办法用迭代器只删除列表中的第一个元素?

java - 即使我运行 mvn hibernate3 :hbm2cfgxml 也不会创建 hibernate.cfg.xml

java - hibernate validator : Using if - else kind of logic in annotation

java - Autowiring 接口(interface)无需注释即可工作