hibernate级联插入数据
TUser.hbm.xml:
<hibernate-mapping>
<class name="com.TUser" table="T_User" schema="dbo" catalog="Sample">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<set name="addresses" table="T_Address" lazy="false" inverse="true" cascade="all">
<key column="user_id"></key>
<one-to-many class="com.TAddress"/>
</set>
<property name="name" type="java.lang.String">
<column name="name" length="50" />
</property>
<property name="age" type="java.lang.Integer">
<column name="age" />
</property>
<property name="groupId" type="java.lang.Integer">
<column name="group_id" />
</property>
</class>
</hibernate-mapping>
TAddress.hbm.xml
<hibernate-mapping>
<class name="com.TAddress" table="T_Address" schema="dbo" catalog="Sample">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="zipcode" type="java.lang.String">
<column name="zipcode" length="50" />
</property>
<property name="tel" type="java.lang.String">
<column name="tel" length="50" />
</property>
<many-to-one name="user"
class="com.TUser"
cascade="none"
column="user_id"
insert="true"
update="true"
outer-join="auto"
access="property"
/>
</class>
</hibernate-mapping>
我想实现给一个已有用户添加一个地址的功能。用到了以下的测试程序:
Configuration cf = new Configuration().configure();
SessionFactory sf=cf.buildSessionFactory();
Session session = sf.openSession();
Transaction tx= session.beginTransaction();
TUser user= (TUser)session.get(TUser.class, 2);
System.out.println(user.getId().intValue());
TAddress address=new TAddress();
address.setTel("123456789");
address.setZipcode("100083");
address.setUser(user);
user.getAddresses().add(user);
session.save(user);
tx.commit();
可是程序执行后,数据库T_Address没有任何数据,不知道是什么原因?还请指教!