本帖最后由 jiangbo86 于 2010-01-14 17:46:33 编辑

解决方案 »

  1.   

    你这个里面user和student,account都是new的对象,
    就是说全新增,你三个对象全都save之后一起commit就好,
    你少save了两个对象如果不想显式的写HibernateDAO.save(user);HibernateDAO.save(student);
      你可以试试在你的hibernate配置文件中改一下,类似
    <many-to-one name="user" class="User" insert="true" update="true" inverse="true" cascade="all"> 
    <column name="USERID" length="32" not-null="true" /> 
    </many-to-one>
    这是级联添加删除的思路, 你试试看
      

  2.   

    楼主要求是可以实现的:@SuppressWarnings("serial")
    public class Test1 implements Serializable {

    private Long id = null;

    private String name;

    private Test2 test2;

    public Test1() {
    } public Long getId() {
    return id;
    } public void setName(String name) {
    this.name = name;
    } public String getName() {
    return name;
    } public void setTest2(Test2 test2) {
    this.test2 = test2;
    } public Test2 getTest2() {
    return test2;
    }}<hibernate-mapping package="model" default-access="field"> <class name="Test1" table="Test1" > <!-- Common id property. -->
    <id name="id" type="long" column="TEST1_ID">
    <generator class="native" />
    </id> <property name="name" column="TEST1_NAME" type="string" /> <one-to-one name="test2" class="Test2" property-ref="test1" cascade="all"/>
    </class>
    </hibernate-mapping>
    @SuppressWarnings("serial")
    public class Test2 implements Serializable {

    private Long id = null;

    private String name;

    private Test1 test1;

    private Test3 test3;

    public Test2() {
    } public Long getId() {
    return id;
    } public void setName(String name) {
    this.name = name;
    } public String getName() {
    return name;
    } public void setTest1(Test1 test1) {
    this.test1 = test1;
    } public Test1 getTest1() {
    return test1;
    } public void setTest3(Test3 test3) {
    this.test3 = test3;
    } public Test3 getTest3() {
    return test3;
    }}<hibernate-mapping package="model" default-access="field"> <class name="Test2" table="Test2" > <!-- Common id property. -->
    <id name="id" type="long" column="TEST2_ID">
    <generator class="native" />
    </id> <property name="name" column="TEST2_NAME" type="string" />

    <many-to-one name="test1" column="TEST1_ID" class="Test1" not-null="true" unique="true" /> <one-to-one name="test3" class="Test3" property-ref="test2" cascade="all"/>
    </class>
    </hibernate-mapping>@SuppressWarnings("serial")
    public class Test3 implements Serializable {

    private Long id = null;

    private String name;

    private Test2 test2;

    public Test3() {
    } public Long getId() {
    return id;
    } public void setName(String name) {
    this.name = name;
    } public String getName() {
    return name;
    } public void setTest2(Test2 test2) {
    this.test2 = test2;
    } public Test2 getTest2() {
    return test2;
    }}<hibernate-mapping package="model" default-access="field"> <class name="Test3" table="Test3" > <!-- Common id property. -->
    <id name="id" type="long" column="TEST3_ID">
    <generator class="native" />
    </id> <property name="name" column="TEST3_NAME" type="string" />

    <many-to-one name="test2" column="TEST2_ID" class="Test2" not-null="true" unique="true" /> </class>
    </hibernate-mapping>public class Test1Test2Test2Test { public static void main(String[] args) {

    Session session = HibernateUtil.getSessionFactory().openSession();
    Transaction tx = session.beginTransaction();

    Test1 test1 = new Test1();
    test1.setName("test1");
    Test2 test2 = new Test2();
    test2.setName("test2");
    Test3 test3 = new Test3();
    test3.setName("test3");

    test1.setTest2(test2);
    test2.setTest1(test1);
    test2.setTest3(test3);
    test3.setTest2(test2);

    session.save(test1);

    tx.commit();
    session.close();



    }
    }
      

  3.   

    我无法实现,这个...
    我两张表,一张user 一张,userinfo结构
    user:userid ,password
    userinfo: userinfoid , userid ,name我想1对1 关联起来,然后插入user 的时候,同时插入userinfo。userinfoid 是自动生成,但是userid 要和user表里面进行对应,我user 里面设置的是one-to-one userinfo 是many-to-one ,插入老是只能插入user .userinfo 进不去