Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动将DB表映射到Hibernate类_Java_Hibernate_Class_Ejb_Automapping - Fatal编程技术网

Java 自动将DB表映射到Hibernate类

Java 自动将DB表映射到Hibernate类,java,hibernate,class,ejb,automapping,Java,Hibernate,Class,Ejb,Automapping,我有我朋友的EJB项目,它使用hibernate。在这个项目的帮助下,我正在做我的Java项目。我的不是EJB,而是桌面应用程序。我有一个小的hibernate类映射问题,就是在我朋友的项目中,当我向数据库添加一个新字段(比如varchar)时,我可以在相关java类中使用该字段。比如说 在数据库中,我将电话号码添加到表A中。我可以这样使用它 class A { ....... private String telephoneNo; public String getT

我有我朋友的EJB项目,它使用hibernate。在这个项目的帮助下,我正在做我的Java项目。我的不是EJB,而是桌面应用程序。我有一个小的hibernate类映射问题,就是在我朋友的项目中,当我向数据库添加一个新字段(比如varchar)时,我可以在相关java类中使用该字段。比如说

在数据库中,我将电话号码添加到表A中。我可以这样使用它

class A {
    .......
    private String telephoneNo;

    public String getTelephoneNo(){
          return this.telephoneNo;
    }


    public void setTelephoneNo(String telephoneNo){
          this.telephoneNo = telephoneNo;
    }
    ........
}
但是在我的项目中,我必须使用注释来设置列名

难题是,它如何解析变量名?。我知道在hibernate中,如果数据库字段和类变量名相同,那么它将自动映射,如果不是,我们应该使用注释或xml来映射,但是在本例中(我朋友的项目),它如何自动解析

同样在我朋友的EJB项目中,我根本看不到任何类映射,当我们添加表时,它会自动映射到相关的类(我的意思是在将类添加到EJB之后)


但是如何在Java桌面应用程序中实现这一点呢?

您在这里提出了很多问题: 1.您可以定义在何处休眠以搜索实体。您可以定义查看当前jar的附加jar。。。(../MyApp.jar),但用作实体的类必须通过注释(@entity)或xml映射进行声明。
2.用于列名称和表名称。hibernate按照异常进行配置,因此如果不给表或字段命名,则列名或表名将是相同的。您可以覆盖hibernate的默认命名(请参阅property name=“hibernate.naming_strategy”)。

您的好友项目中必须有hbm.xml或注释才能进行映射。检查它。谢谢你的回答,我阅读了配置文档,但我的项目不是EJB,它是一个标准的桌面应用程序,我还添加了一个类和@entity注释,当我运行它时,我会得到未知的实体异常,但是在EJB项目(我朋友的)中,如果我向DB添加一个表,然后我可以在EJB中创建一个类并使用它,而无需编写或编辑任何EML