我有以下的(簡化)類:龍目島建造者在Spring數據缺省
@Entity
@Data
@Builder
@NoArgsConstructor // @Builder creates the all-args version but I need this one elsewhere.
@AllArgsConstructor(access = AccessLevel.PRIVATE) // Having @NoArgsConstructor disables the @AllArgsConstructor needed by @Builder unless I have this explicitly applied
public class MyClass {
// ...
@Builder.Default
private String foo = "Some Default Value"
// ...
}
這正常在一般情況下,但問題來了什麼時候該實體得到由春(尤其是Spring數據建存儲庫以響應創建它的REST請求)。 Spring會看到全參數構造函數並使用它,爲foo設置一個空值(在這種情況下,它不是在POST數據中設置的),並且最終以foo爲空值而不是預期的"Some Default Value"
。 @Builder.Default
。
簡單地創建setter並防止null值不起作用。我可以明確地寫出AllArgsConstructor,但這(有點)在某種程度上擊敗了Lombok的目的。不是一個可怕的解決方案,但並不理想。
任何人都可以想到這方面的任何解決方法?
您是否嘗試更改AccessType。嘗試在類 – pvpkiran
上使用'@AccessType(AccessTpe.FIELD)',我看不出如何工作。 AccessType是關於數據層如何獲得要被持久化的值,對吧?直接通過現場或通過訪問器。此外,默認情況下已經是字段訪問,所以這不會是一個變化,我不認爲。 –