我需要確保我創建的新供應商部分不存在。這是目前像這樣做有沒有一種比較便宜的方法來在休眠狀態下進行以下主鍵驗證
try {
entityManager.get(SupplierPartEntity.class,
new SupplierPartPK(supplierID, partID));
throw new CreateSupplierPartActionException("Supplier part record exists for " + supplierID
+ "/" + partID + ".");
} catch (final RecordNotFoundException e) {
/* supplier part not found - do nothing */
}
其值得一提的EntityManager將拋出一個創紀錄的未發現異常時的get()通常會返回null;
我知道數據庫命中是必需的,試圖避免一個空的catch塊,因爲它的邏輯將遵循的預期路徑。 – Luke
這是一個性能或代碼風格的問題?如果性能不好,不要擔心,除非分析人員告訴你存在問題。如果代碼風格,在你的'entityManager'中添加一個封裝了「這個事情是否存在」邏輯的方法。 –
謝謝,我讀過空的catch塊是一個不好的做法,並試圖找到一個更優雅的方法。我將研究封裝「存在」它仍然使用entiyManager.find(Class.class,PK)並檢查null,但返回一個布爾值。 – Luke