Java Hibernate教程-将映射文件放在哪里?
下面是关于hibernate的有趣教程: 然而,本教程忽略了将这些文件放在何处。我正在使用一个基本Maven项目的文件夹结构 文件夹结构如下所示:Java Hibernate教程-将映射文件放在哪里?,java,hibernate,maven,Java,Hibernate,Maven,下面是关于hibernate的有趣教程: 然而,本教程忽略了将这些文件放在何处。我正在使用一个基本Maven项目的文件夹结构 文件夹结构如下所示: foo └───src └───main ├───java │ └───org │ └───me │ └───bar │ └───[all my java source-files here]
foo
└───src
└───main
├───java
│ └───org
│ └───me
│ └───bar
│ └───[all my java source-files here]
└───resources
├───hibernate.cfg.xml
└───hiber
└───Employee.hbm.xml
文件夹main
具有相同级别的java
和resources
,如果这在ASCII艺术中不明显。(编辑:现在是。)
映射文件(Employee.hbm.xml)应该放在哪里?该文件在配置文件(hibernate.cfg.xml)中引用
谢谢你阅读这篇文章
关于,通常,它放在映射的类所在的同一文件夹中 但是,检查一下,它可以去任何地方,只需在
hbm.xml
文件中本地化您的类,如下所示:
...
<hibernate-mapping>
<class name="where.my.class.Is" table="myTable"
...
。。。
您应该将“hibernate.cfg.xml”放在“/src/main/resources下
您应该将所有模型映射文件放在定义POJO模型类的同一目录下
根据您提供的目录结构,它应该是:
foo
└───src
└───main
├───java
│ └───org
│ └───me
│ └───bar
│ └───[all your java Model source-files here]
| Employee.java
| Employee.hbm.xml
| Customer.java
| Customer.hbm.xml
└───resources
└───hibernate.cfg.xml
您应该在hibernate.cfg.xml文件中引用/映射所有模型文件,如下所示
<mapping resource="org/me/bar/Employee.hbm.xml"/>
<mapping resource="org/me/bar/Customer.hbm.xml"/>
你也可以检查这个,我的项目文件夹的捕获
您可以将映射文件放在任何文件夹中,但是您必须在hibernate.cfg.xml中为该文件提供正确的路径。您可以将hibernate.cfg.xml放在类路径的任何位置,但是在配置过程中,您应该提供文件路径,例如,如果文件路径为
src/main/java/conf/hibernate.cfg.xml
您需要提供以下路径:
conf/hibernate.cfg.xml
如果不想提供路径,则将hibernate.cfg.xml放在任何源文件夹中,例如src/main/java/hibernate.cfg.xml或src/main/resorces/hibernate.cfg.xml
同样,您可以在类路径中的任何位置保留映射文件,但需要在映射中提供路径
如果您只想提供文件名而不是路径,请将其保存在任何源文件夹或类的包中,该类已映射。谢谢您的详细回复。我能够解决我自己的问题后不久张贴在这里。我认为解决问题的方法是正确地引用
属性,并正确地编码hbm.xml
文件的hibernate映射部分,以便在编译和运行时找到POJO如果编译器和JRE能够找到这些文件,我想这些文件可能在任何地方。是的,可能,我很高兴你解决了你的问题。按照惯例,我总是将hibernate配置文件(“hibernate.cfg.xml”)放在src/main/resources下,其余的放在POJO所在的模型包下?是否有任何可以设置hibernate映射的特定字段?是的,我的理解是正确的。如果我能选择多个正确答案,我也会选择这个。太棒了。我认为这也是正确的。如果我能选择多个正确答案,我也会选择这一个:D