根据查询出来的数据,用关键字做查询,返回A和B的实例,然后就可以用hibernate的saveOrUpdate和del方法添加删除修改了..

解决方案 »

  1.   

    如果用的是Hibernate3,可以考虑使用原生SQL
      

  2.   

    16.4. 定制SQL用来create,update和delete
    Hibernate3能够使用定制的SQL语句来执行create,update和delete操作。在Hibernate中,持久化的类和集合已经 包含了一套配置期产生的语句(insertsql, deletesql, updatesql等等),这些映射标记 <sql-insert>, <sql-delete>, and <sql-update>重载了 这些语句。 <class name="Person">
        <id name="id">
            <generator class="increment"/>
        </id>
        <property name="name" not-null="true"/>
        <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )</sql-insert>
        <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-update>
        <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>
    </class>
    这些SQL直接在你的数据库里执行,所以你可以自由的使用你喜欢的任意语法。但如果你使用数据库特定的语法, 这当然会降低你映射的可移植性。
      

  3.   

    请问HelloMoney和Saro,配置完了代码中如何调用自定义的sql语句呢,我用session.save方法hibernate还是使用自动生成的代码啊
      

  4.   

    执行sql语句:
    public boolean execSQL(String executeStr) throws SQLException {
    boolean ret = false;
    PreparedStatement preStatement = null;
    try {
    preStatement = ((SessionImpl) session).getBatcher()
    .prepareStatement(executeStr);
    ret = preStatement.execute();
                               //查询语句:preStatement.executeQuery();
    } catch (SQLException e) {
    throw e;
    } finally {
    if (preStatement != null)
    preStatement.close(); }
    return ret;
    }