Вставьте атрибут в таблицу, если он не нулевой, используя Hibernate - PullRequest
0 голосов
/ 30 мая 2018

У меня есть класс отображения, определенный как:

@Table(name = "TEST_TABLE")
public class DBTestAccount
{
    @Id
    @Column(name = "UUID", nullable = false, length = 36)
    private String uuid;

    @Column(name = "REGION")
    private String region;

    @Column(name = "COUNTRY")
    private String countryCode;

    //getters and setters
}

Теперь мне нужно обновить таблицу.Для этого предположим, что я создаю следующий объект:

DBTestAccount dbTestAccount = new DBTestAccount();
dbTestAccount.setUuid("testUUID");
dbTestAccount.setRegion("testRegion");
dbTestAccount.setCountryCode(null);

Теперь давайте предположим, что изначально в таблице есть запись, которая имеет некоторое значение COUNTRY.Вставка вышеуказанного объекта заменит значение и сделает COUNTRY нулевым.Я хочу, чтобы он обновлял данные, но если столбец нулевой, то он должен игнорировать и не обновлять его.Если это не нуль, тогда это должно обновить это.Как этого добиться в спящем режиме?Есть ли аннотация для этого?Если нет, то каково возможное решение (кроме использования if - else).Могу ли я создать для этого пользовательскую аннотацию?

PS: Базовая база данных - PostgreSQL.

1 Ответ

0 голосов
/ 30 мая 2018

Пример, который вы описываете, не может присутствовать в базе данных, потому что объект еще не является сущностью, так как он создан с новым ключевым словом и еще не сохранен в базе данных.

Из вашего объяснения я понял, что вы хотите сохранить только измененные атрибуты.Для этого в hibernate есть аннотация Dynamic Update .

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