java - 更新查询以更改依赖于其他表的一个表中的文件

标签 java mysql hibernate spring-mvc hibernate-criteria

我有两个表所有者和成员,在成员表中有字段 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/

相关文章:

java - tomcat集群环境中的内存泄漏

php - 使用 PDO 连接进行 SQL 更新

mysql - 锁总数超过MySQL中的锁表大小

java - 事务提交后更新查询未刷新

java - JPA/Hibernate - x 实例的标识符被更改异常

java - BigDecimal 数学运算

java - 解析 JSON 时如何替换 System.out.println 作为返回?

sql - MySQL "NULL"问题

java - 关于 hibernate 缓存

java - 将完整日期(日期和小时)字符串解析为日期导致异常