Доступ к значению столбца внешнего ключа без получения связанной записиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Доступ к значению столбца внешнего ключа без получения связанной записи

Сообщение Anonymous »

Я перехожу на Java/Spring из другого стека разработки, и меня очень смущает то, как в Spring выполняются некоторые вещи. И я очень удивлен, что не могу найти решение моей конкретной проблемы.
Рассмотрим следующую структуру кода:

Код: Выделить всё

@Entity
class Parent {
}

@Entity
class Child {
private String name;

@ManyToOne
private Parent parent;
}

В моем контроллере API я хочу ответить дочерним списком. Каждый дочерний элемент должен включать несколько дочерних полей (например, имя) и родительский идентификатор (и никаких других родительских данных):

Код: Выделить всё

// JSON Response example
{
"children": [
{
"name": "Child 1",
"parent_id": 1
},
{
"name": "Child 2",
"parent_id": 2
}
]
}
Чтобы предоставить значение Parent_id, Spring+Hibernate+JPA позволяет мне получить доступ к родительскому идентификатору следующим образом:
р>

Код: Выделить всё

child.getParent().getId()
Это не только приводит к ненужной выборке всей родительской записи со всеми ее полями из БД, но также вызывает проблему N + 1 в моем случае, если не используются какие-либо подходы JOIN FETCH или EAGER LOAD.
Но родительский_id — это простой дочерний столбец.
Он должен быть доступен для бесплатно, даже если ассоциация не была загружен!
Есть ли какой-нибудь оптимальный способ достижения моей цели?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ted-record
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»