【发布时间】:2013-09-23 08:36:26
【问题描述】:
我有多年的 SQL 经验。我是 Hibernate 的新手,我已经了解了 Hibernate 的基础知识。 下面的逻辑是必需的;但是我更改了表名以确保它不会泄露公司详细信息。 另请注意,SQL 必须作为一条 SQL 语句运行 - 其他应用程序可以在此语句运行的同时更新表。 表格设计无法更改,因为其他应用程序已经在使用它们进行生产。
有人可以演示如何在 Hibernate 中进行以下更新吗?
createNativeQuery 是一个选项吗??
update
PERSON P
set
P.STATUS = 'Happy'
where
P.PK_ID = :person_id
and
(
select count(1)
from WORK_JOBS WJ
where WJ.RESOLVED_STATUS is null
) = 0
and
(
select count(1)
from EXPENSES EX
where EX.COST > :max_exp_cost
) = 0
;
简化的表格定义如下。
create table PERSON
(
PK_ID NUMBER NOT NULL,
LAST_NAME VARCHAR2(100),
FIRST_NAME VARCHAR2(100),
PRIMARY KEY PK_ID
)
;
create table WORK_JOBS
(
PK_ID NUMBER NOT NULL,
SUMMARY VARCHAR2(100),
DESCRIPTION VARCHAR2(1000),
RESOLVED_STATUS VARCHAR2(50),
PRIMARY KEY PK_ID
)
;
create table EXPENSES
(
PK_ID NUMBER NOT NULL,
SUMMARY VARCHAR2(100),
DESCRIPTION VARCHAR2(1000),
COST DECIMAL(10,2),
PRIMARY KEY PK_ID
)
;
【问题讨论】:
标签: java hibernate sql-update subquery