LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

Если я правильно понял, что нужно сделать, то делается так:

Мы делаем LOR. Обработчик сохранения комментария. У комментария есть автор (пользователь).

В нашем обработчике доступен accountId. Вопрос в том — как сохранить комментарий без запроса к таблице account.

1 способ.

Account = new Account();
account.setAccountId(accountId);
Message = new Message();
message.setAuthor(account);
message.setText(text);
entityManager.persist(message);

т.е. просто заполняем пустым объектом с заполненым ID. Не знаю, по стандарту ли это, но в хибернейте работает.

2 способ по стандарту.

Account account = entityManager.getReference(Account.class, accountId);
Message = new Message();
message.setAuthor(account);
message.setText(text);
entityManager.persist(message);

getReference возвращает управляемый объект, но запрос в БД не делает.

В обоих способах message сохранится без дополнительных селектов.

Да, ehcache.

Исходная версия Legioner, :

Если я правильно понял, что нужно сделать, то делается так:

Мы делаем LOR. Обработчик сохранения комментария. У комментария есть автор (пользователь).

В нашем обработчике доступен accountId. Вопрос в том — как сохранить комментарий без запроса к таблице account.

1 способ.

Account = new Account();
account.setAccountId(accountId);
Message = new Message();
message.setAuthor(account);
message.setText(text);
entityManager.persist(message);

т.е. просто заполняем пустым объектом с заполненым ID. Не знаю, по стандарту ли это, но в хибернейте работает.

2 способ по стандарту.

Account account = entityManager.getReference(Account.class, accountId);
Message = new Message();
message.setAuthor(account);
message.setText(text);
entityManager.persist(message);

getReference возвращает управляемый объект, но запрос в БД не делает.

В обоих способах message сохранится без дополнительных селектов.