, Если Вы управляете источником классов, для которых Вы интересуетесь тем, загружаются ли они или не (относительно которого я сомневаюсь, но Вы не заявляете в своем вопросе), затем Вы могли зарегистрировать свою загрузку в статическом инициализаторе.
public class TestLoaded {
public static boolean loaded = false;
public static void main(String[] args) throws ClassNotFoundException {
System.out.println(loaded);
ClassToTest.reportLoaded();
System.out.println(loaded);
}
static class ClassToTest {
static {
System.out.println("Loading");
TestLoaded.loaded = true;
}
static void reportLoaded() {
System.out.println("Loaded");
}
}
}
Вывод:
false Loading Loaded true
INSERT INTO Employee
(EmployeeName, DepartmentId)
SELECT
'John Doe' AS EmployeeName, Id AS DepartmentId
FROM
Department WHERE DepartmentName = 'Accounting';
Вы можете:
insert into Employee (
EmployeeName,
DepartmentId
)
SELECT 'John Doe', Id
FROM Department
WHERE DepartmentName = 'Accounting'
Ваш запрос не будет выполнен в Oracle
, если существует более одного бухгалтерии.
Если вы полагаетесь на такое поведение, используйте следующий синтаксис:
INSERT
INTO Employee
(
EmployeeName,
DepartmentId
)
SELECT "John Doe",
(
SELECT id
FROM Department
WHERE DepartmentName = 'Accounting'
)
В противном случае, просто используйте синтаксис SELECT FROM Department
, предложенный другими.
Обратите внимание, однако, что этот синтаксис вставит John Doe
дважды или больше, если есть несколько строк с имя
установлено на Бухгалтерский учет
в Отделах
.