是否有必要使用AnnotationConfiguration进行休眠配置?

时间:2013-01-16 13:07:38

标签: java hibernate annotations reverse-engineering hibernate-mapping

我想使用Configuration()methot。但是我得到了这个错误:

Initial SessionFactory creation failed.org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="com.example.domain.Lesson"/>

如果我使用AnnotationConfiguratin()方法,Hibernate可以读取我的类。我不明白这一点:

为什么当我使用Configuration方法时,Hibernate看不到<mapping class="com.example.Lesson"/>定义?

我的hibernate.cfg.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>

        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.connection.password">****</property>
        <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/DB</property>
        <property name="hibernate.connection.username">postgres</property>
        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>   

        <mapping resource="com.example/Lesson.hbm.xml" /> 

        <mapping class="com.example.Lesson"/>


    </session-factory>
</hibernate-configuration>

我的课程课程:

    public class Lesson implements java.io.Serializable {

        private int id;
        private String lesson;
        private Set lessons = new HashSet(0);

        public Lesson() {
        }


        public Lesson(int id, String lesson, Set lessons) {
            this.id = id;
            this.id = id;
            this.lessons = lessons;
        }


        continue..



}

我有来自reverse engineering.的bhm.xml文件所以,我不想使用Annotation。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

只需从<mapping class="com.example.Lesson"/>移除hibernate.cfg.xml即可。没有必要,因为Lesson.hbm.xml存在。