现在有两个实体,一个是User,一个是Credential,现在要在新增User的同时新增Credential,且User与Credential的关系是OneToMany,想问在新增时怎样为Credential赋userId(userId为User主键,为Credential外键)

解决方案 »

  1.   

    这个你哪里有疑惑啊?
    什么叫同时?简单的做一个事务处理,先user增加,完了就知道id是什么了,再添加到credential里面
    如果出现异常,捕获回滚
      

  2.   

    用Hibernate可以直接取到,不用框架的话,试试Statement.RETURN_GENERATED_KEYS,比如:String sql = "INSERT INTO dd (ddd) VALUES ('221111') select SCOPE_IDENTITY() as id";  
    PreparedStatement pstm = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
      

  3.   

    你用 jdbc 对数据库 进行操作的话 ,你要 返回 user 主键 用
    Inter userId = null;
    stmt.executeUpdate(sql,Statement.RETURN_GENERATED_KEYS); 
    ResultSet rs = stmt.getGeneratedKeys();
    if(rs.next()){
        userId = rs.getInt(1);
    }如果你是用 Hibernate 对数据库进行操作的话 ,保存 user 的以后 它会帮你把userId set 进去的 
    你直接 用userId的 get 方法获取就行了