当前位置: 代码迷 >> Java Web开发 >> 请教一个关于hibername的many-to-one的问题。
  详细解决方案

请教一个关于hibername的many-to-one的问题。

热度:240   发布时间:2008-09-13 18:32:55.0
请教一个关于hibername的many-to-one的问题。
我定义了两各类:event ,location类。event包含了一个location类的对象
Event.hbm.xml的配置文件如下:
<class name="Event" table="events">
        <id name="id" type="java.lang.Integer">
            <generator class="increment"></generator>
        </id>
        <property name="name" type="java.lang.String"></property>
        <!--<property name="startDate" column="start_date" type="date"></property>  -->
        <property name="duration" column="duratiion" type="java.lang.Integer"></property>
        <property name="startDate" column="startDate" type="java.lang.String"></property>
        <many-to-one name="location" column="location_id" class="Location"></many-to-one>
</class>
Location.hbm.xml的配置文件如下
<class name="Location" table="locations">
        <id name="id" type="java.lang.Integer">
            <generator class="increment"></generator>
        </id>
        <property name="name" type="java.lang.String"></property>
        <property name="address" type="java.lang.String"></property>
</class>
问题是:当我持久化这两个类后,"location_id"字段为空,其他字段都很正常。请问这是怎么回事?
我感觉好像是配置文件好像少其他的配置语句。
我的测试类的内容如下:
                Configuration configuraton;
        SessionFactory sessionFactory;
        Session session;
        // 实例化Configuration
        configuraton=new Configuration().configure();
        // 实例化SessionFactory
        sessionFactory =configuraton.buildSessionFactory();
        // 实例化Session
        session = sessionFactory.openSession();
        Event event=new Event();
        Location location=new Location();
        event.setName("first");
        event.setStartDate("21-12月-83");
        event.setDuration(10);
        location.setName("china");
        location.setAddress("china");
        Transaction tx = session.beginTransaction();
                session.save(event);
        session.save(location);
        tx.commit();
        session.flush();
        session.clear();
搜索更多相关主题的帖子: hibername  

----------------解决方案--------------------------------------------------------
你把错误也写上拉,还有你的
Location.hbm.xml里面怎么没有<ont - to - many>
----------------解决方案--------------------------------------------------------
<generator class="increment"></generator>
这个我不是很明白,我们一般好象都是<generator class="native"></generator>
----------------解决方案--------------------------------------------------------
谢谢各位。问题已经找到了。我没有在event对象中保存location对象,所以造成这样的问题。
我有点马虎、大意了。
----------------解决方案--------------------------------------------------------