当前位置: 代码迷 >> Java Web开发 >> Spring、hibernate集成的时候list save的有关问题
  详细解决方案

Spring、hibernate集成的时候list save的有关问题

热度:8463   发布时间:2016-04-10 22:49:44.0
Spring、hibernate集成的时候list save的问题
hibernate配置
<!-- User -->
<class name="com.daojie.model.User" table="user">
    <id name="id" column="id" type="java.lang.Integer">
        <generator class="increment"></generator>
    </id>
    <property name="username" column="username" type="java.lang.String" />
    <property name="password" column="password" type="java.lang.String" />
    
    <list name="workRecord" inverse="false" cascade="all">
        <key column="user_id" not-null="false"/>
        <index column="record_index" />
        <one-to-many class="com.daojie.model.WorkRecord"/>
    </list>
</class>
<!-- WorkRecord -->
<class name="com.daojie.model.WorkRecord" table="workrecord">
    <id name="id" type="java.lang.Integer">
        <generator class="increment" />
    </id>
    <property name="type" type="string" />
    <property name="dateTime" type="date" />
    <property name="attachment" type="string" />
    <property name="lat" type="double" />
    <property name="lng" type="double" />
    <property name="address" type="string" />
</class>

public class User {

    private Integer id;
    private String username;
    private String password;
    private List<WorkRecord> workRecord = new ArrayList<WorkRecord>();
    ...get set
}
public class WorkRecord {

    private Integer id;
    private Integer userId;
    private String type;
    private Date dateTime;
    private String address;
    private double lat;
    private double lng;
    private String attachment;
    ...get set
}

Hibernate: 
select
    user0_.id as id0_0_,
    user0_.username as username0_0_,
    user0_.password as password0_0_ 
from
    user user0_ 
where
    user0_.id=?
Hibernate: 
insert 
into
    workrecord
    (type, dateTime, attachment, lat, lng, address, id) 
values
    (?, ?, ?, ?, ?, ?, ?)

上面我单独保存WorkRecord为什么出现的insert的sql里没有user_id和record_index,这些字段在数据里都有的
------解决方案--------------------
hibernate配置文件里面 没有对应的字段。加上就行了