我有两个表所有者和成员,在成员表中有字段 mid ,所有者中的同名字段 mid 但具有空值,我想从所有者表更新 mid 作为插入成员表中间的值,两个 mid 都应该是一样的。使用hibernate所以我尝试了但查询不正确。
public void updateOwnerMember(Owner owner) {
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String hql="update Owner set Owner.mId = Member.mId from Member Owner inner join mId Member on Member.mId = Owner.mID where Owner.mId is null ";
Query query=sessionFactory.openSession().createQuery(hql);
query.setInteger(0,1);
query.setInteger(1,2);
query.executeUpdate();
tx.commit();
session.close();
}
最佳答案
只有当 mId 不是主键时,这才有可能,否则你没有任何东西可以加入它们。
示例查询(未验证):
UPDATE Owner
SET Owner.mId = (SELECT Member.mId FROM Member WHERE m.id = o.id)
关于java - 更新查询以更改依赖于其他表的一个表中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48378804/