一个hibernate的数据类型的问题

蜡笔小小小新 发布于 2015/09/21 21:58
阅读 140
收藏 0

我的.hbm.xml文件是这样的,它们是一对多的关系:

一的一端:

<?xml version="1.0"?>    
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

    <class name="com.jeanselam.pojo.Staff" table="t_staff" >
        
        <id name="id">  
            <generator class="native"/>  
        </id>
        
        <property name="name" type="string"></property>
        <property name="num" type="string" length="100"></property>
        <property name="email" type="string"></property>
        <property name="password" type="string"></property>
        <property name="gender" type="integer"></property>
        <property name="staffTitle" type="string"></property>
        <property name="tel" type="string"></property>
        <property name="state" type="integer" ></property>
        
        <property name="authority_product" type="integer"></property>
        <property name="authority_advice" type="integer"></property>
        <property name="authority_chart" type="integer"></property>
        <property name="authority_order" type="integer"></property>
        <property name="authority_talk" type="integer"></property>
        <property name="authority_root" type="integer"></property>
        
        <!-- 一对多,通知 -->
        <set name="advices" cascade="all" inverse="true" table="t_advice">
            <!-- 从表的外键 -->
            <key>
                <column name="staff_id" not-null="true" />
            </key>
            <one-to-many class="com.jeanselam.pojo.Advice"/>
        </set>
    
    </class>


</hibernate-mapping>


多的一端:

<?xml version="1.0"?>    
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

    <class name="com.jeanselam.pojo.Advice" table="t_advice">
    
        <id name="id">  
            <generator class="native"/>  
        </id>
        
        <property name="title" type="string"></property>
        
        <property name="content" type="string"></property>
        <property name="publishTime" type="date"></property>
        
         <!-- 多对一,工作人员 -->
        <many-to-one name="staff" class="com.jeanselam.pojo.Staff" fetch="select">
            <column name="staff_id" not-null="true"/>
        </many-to-one>
        
    </class>

</hibernate-mapping>


Java 代码:

控制层:

public String publishAdvice() throws Exception {

        ActionContext actionContext = ActionContext.getContext();

        Map<String, Object> session = actionContext.getSession();

        Integer staffId = ((Staff) session.get("staff")).getId();
        
        Staff staff = staffService.get(staffId);
        
        advice.setStaff(staff);
        advice.setPublishTime(new Date());
        
        /**
         * 关联
         */
        Set<Advice> temp = staff.getAdvices();
        temp.add(advice);
        staff.setAdvices(temp);
        
        staffService.update(staff);
        //adviceService.add(advice);

        return SUCCESS;
    }


业务层:

@Override
    public void update(T t) {
        
        if(t != null)
        {
            baseDao.update(t);
        }
        
    }


DAO层:

@Override
    public void update(T t) {

        if (t != null) {
            
            Session session = sessionFactory.getCurrentSession();

            //session.saveOrUpdate(t);
            
            session.merge(t);
        }

    }


当我执行update的时候,控制并没有输出update的SQL语句,没有执行更新操作,但是我把Advice.hbm.xml的<property name="publishTime"/>中的type=“date”去掉后,就可以执行update操作了,我很困惑,不知道是什么原因 T_T



加载中
返回顶部
顶部