在一對多的JPA關聯中,初始化關係爲空集合被認爲是最佳實踐嗎?例如。初始化或不初始化JPA關係映射?
@Entity
public class Order {
@Id
private Integer id;
// should the line items be initialized with an empty array list or not?
@OneToMany(mappedBy="order")
List<LineItem> lineItems = new ArrayList<>();
}
在上面的例子是它更好地與空ArrayList
與否的默認值定義lineItems
?優缺點都有什麼?
感謝您的有用評論。 – cripox
但是,在JPA實體的情況下,我會爭辯說,您應該使用_mutable_列表進行初始化,將該字段設置爲私有,並且只爲您的集合提供公共getter。只有這樣,你才能確定,'lineItems'永遠不是'null'。我不擔心創建空列表,因爲現代JVM對於垃圾收集非常有用。作爲一般說明:永遠不要預先優化您的代碼! –
我同意@StefanHaberl,你不應該用一個不可變的集合初始化實體字段。這將使創建實體和測試的新實例變得困難。如果你擔心性能,你可能會嘗試像'new HashSet <>(0)'(https://stackoverflow.com/questions/18076492/why-initialize-hashset0-to-zero)。 – csharpfolk