У меня есть pojo с аннотациями jpa. Одно из строковых свойств помечено как не обнуляемое. Есть некоторый код, который устанавливает значение, если оно не установлено. В некоторых случаях этот код должен быть запущен, но если установить значение в пустую строку, он обрабатывается как значение и не запускается. Я не могу установить ненулевое значение равным нулю, и поэтому я не могу отредактировать объект, чтобы вызвать код обычным способом.
Честно говоря, этот фрагмент кода в любом случае нуждается в рефакторинге, и у меня действительно есть обходной путь, но я уверен, что я видел способ «удалить» peroperty где-то раньше (возможно, отражение?)
Итак, класс выглядит примерно так ...
@Entity
@Table(name="Example")
@SequenceGenerator(name = "seq1", sequenceName = "seq1")
public class Example implements Serializable {
@Column(name="name", nullable=true, length = 100)
private java.lang.String name;
@Column(name="id", nullable=false) @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ1_Type_SEQ")
@Id
private long oID;
@Column(name="extraval", nullable=false, length = 100)
private java.lang.String entityVersion;4
...
И extraVal устанавливается различными ограничениями jpa / db, если он не установлен в pojo. Иногда я хотел бы вызвать это, даже если оно уже установлено, но установка значения в пустую строку устанавливает его в значение, а установка в ноль вызывает ошибку.
Я на самом деле могу смоделировать значение заранее и надеюсь в какой-то момент провести рефакторинг кода, чтобы я мог выполнить все свои проверки перед тем, как создать объект в первую очередь, чтобы не пытаться копировать / воссоздавать объект и т. д. Как я уже сказал, я уверен, что есть элегантный способ удалить свойство как краткосрочное решение?