JPA Hibernate, как проверить при создании и игнорировать проверку при обновлении - PullRequest
0 голосов
/ 16 октября 2019

У меня есть следующая сущность:

@Entity
@Table(name = "bookings")
public class Booking {


    @Null
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @Null
    @Column(name = "column1", columnDefinition = "VARCHAR(25) DEFAULT 'CREATED'")
    private String column1;

    //the rest of the fields....
}

Это простой весенний загрузочный проект, правило не должно содержать данные столбца1 при создании новой строки (поэтому он использует значение ' CREATED ') однако при обновлении строки мне нравится менять значение на' ENDED '

Есть ли способ сказать Hibernate выполнять проверку только при создании новой строкии игнорировать проверку при обновлении?

1 Ответ

1 голос
/ 16 октября 2019

Взгляните на

@ PrePersist Выполняется до того, как операция управления сохранением сущности будет фактически выполнена или каскадно выполнена. Этот вызов синхронен с операцией persist.

@ PreUpdate Выполняется перед операцией обновления базы данных.

      @PrePersist
      protected void onCreate() {
        column1 = "CREATED";
      }

      @PreUpdate
      protected void onUpdate() {
        column1 = "ENDED";
      }

См. https://docs.jboss.org/hibernate/core/4.0/hem/en-US/html/listeners.html

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