Когда я сохраняю объект с внешним ключом, я вижу в журналах, что eclipselink отключается и выполняет запрос проверки, например:
Я также вижу, что eclipselink находит этот объект и связывает его. Я не хочу, чтобы это делало что-то из этого.
В основном я пытаюсь сохранить объект A, и A имеет отношение к объекту B. Когда я иду, чтобы вставить новый A, все, что у меня есть, это идентификатор для B, а не экземпляр класса B, и я не заинтересованы в получении экземпляра B в этом случае.
Примерно так:
String b_id = "12345";
A a = new A();
B b = new B();
b.setId(b_id);
a.setB(b);
//begin tran
try {
em.persist(a);
//commit
} catch (Exception e) {
e.printStackTrace();
//rollback
}
, что вызывает это в логах:
Execute query DoesExistQuery(referenceClass=B)
SELECT ID FROM B WHERE (ID = ?)
bind => [12345]
Теперь я хочу вставить A без Eclipselink, чтобы проверить, существует ли B с этим Id, и я не хочу, чтобы он связывал этот B с полем A, которое является экземпляром B.
Я не хочу, чтобы Eclipselink добавил эти накладные расходы к вставке, потому что база данных все равно будет выполнять эту проверку перед вставкой, и в этом случае мне не нужен фактический экземпляр B.
Любой ответ приветствуется, спасибо!