Hibernate - Как сохранить сущность, но игнорируя определенные поля? - PullRequest
0 голосов
/ 16 августа 2011

У меня есть сущность с несколькими полями:

@Entity
public class Leilighet {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long leilighetId;
private String navn;
private String beskrivelse;
private String adresse;
private String postNr;
private String postSted;
private double pris;

//The following fields should not be stored:
private String filename;
private String filetype;
private String filesize;
private byte[] filebin;

....
}

У меня есть соответствующая форма и действие, которые заполняют этот объект и сохраняют его в mySql.Это все хорошо, когда дело доходит до хранения новых "Лейлигет" -хозяйств.

Но когда я использую эту форму, чтобы «отредактировать» существующий «Лейлигет», я наткнулся на то, что не могу понять, что делать.

Для целей редактирования я не хочу загружатьвесь загруженный файл.Достаточно просто показать имя файла, чтобы указать, что файл присутствует.Если пользователь выбирает новый файл, он должен быть перезаписан, но если пользователь ничего не выбирает, текущий файл следует сохранить.

Но я не могу понять, как заставить спящий режим делать то, что я хочу.Если я не заполню filebin реальным файлом, hibernate просто удалит файл.

Как я могу сказать hibernate просто обновить другие поля, а не файловые поля?

1 Ответ

1 голос
/ 16 августа 2011

Hibernate поддерживает загрузку отдельных свойств лениво.Подробнее см. http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#performance-fetching-lazyproperties.

Или вы можете просто использовать DTO только с полями, которые вы хотите в этом конкретном случае использования, и выполнить запрос с соответствующими проекциями, чтобы заполнить этот DTO из базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...