Существует ли способ препятствовать тому, чтобы нулевые значения были сохранены при разрешении другим через?

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

Вариант использования - то, что мы можем получить несколько частичных обновлений этих объектов из внешних источников. Те источники могут дать нам нулевое значение, которое не означает, "аннулируют это поле", это означает, что "У меня нет этого значения".

Существует ли аннотация, шаблон или другой инструмент, который может использоваться для автоматизации пустого указателя, регистрируется в методе set ИЛИ говорит JPA не сохранять нулевые значения????

Я могу пройти КАЖДЫЙ метод set в КАЖДОМ объекте и добавить if(val != null) { //set the value } но это является утомительным и повторяющимся.

Например, мы имеем:


@Entity
@Table(name = "my_table")
public class MyObject {
 @Column
 private String myColumn;

 public String getMyColumn() {
  return this.myColumn;
 }

 public void setMyColumn(String val) {
  this.myColumn = val;
 }
}

Я хотел бы иметь что-то, что автоматически поможет как это:


@Entity
@Table(name = "my_table")
public class MyObject {
 @Column
 @DontPersistIfNull
 private String myColumn;

 public String getMyColumn() {
  return this.myColumn;
 }

 public void setMyColumn(String val) {
  this.myColumn = val;
 }
}

ИЛИ это:


@Entity
@Table(name = "my_table")
public class MyObject {
 @Column
 private String myColumn;

 public String getMyColumn() {
  return this.myColumn;
 }

 public void setMyColumn(String val) {
  //AUTOGENERATED NULL CHECK
  if(val != null) {
   this.myColumn = val;
  }
 }
}
5
задан John Feminella 18 January 2010 в 19:52
поделиться

2 ответа

Используйте макрос ...

#define SIZEOF_ARRAY( arr ) sizeof( arr ) / sizeof( arr[0] )

У него также будет бонус работы на любой массив Тип данных :)

-121--3027974-

Hibernate Validator (и любая реализация javax.validation ) имеет аннотацию @notnull @Notnull @notnation . Если аннотированное свойство ноль. Я не уверен в Hibernate-Validator будет работать с EclipseLink, но должна быть реализация javax.validation для EclipseLink.

Но если вы хотите заблокировать настройки NULLS - ну, затем измените слой, который устанавливает значения, а не сами объекты.

2
ответ дан 15 December 2019 в 01:01
поделиться

Не уверены, если это ответ, вы ищете, но вы проверили NULL объекта дизайн объекта шаблон конструкции

2
ответ дан 15 December 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: