是否可以使用實體的唯一屬性刪除實體?在Spring中,數據是否可以使用實體的唯一屬性刪除實體?
在Spring Data 1.4.3.RELEASE中,添加方法以通過唯一屬性查找非常容易,但是,我還沒有找到使用delete進行操作的方法。
在以下代碼中,Spring自動處理findByAddress
,是否有類似的刪除?
類似於void deleteByAddress(String hwAddress);
,我已將它添加到TerminalRepository
,但它不起作用。
public Terminal {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@Column(unique=true)
private String hwAddress;
...
}
public interface TerminalRepository extends
CrudRepository<Terminal, Long> {
Terminal findByAddress(String hwAddress);
}
當然有可能通過address
找到實體然後使用delete(Terminal)
方法傳遞發現實體作爲參數。但是這在性能方面並不好,因爲它會對數據庫數據庫進行一次不必要的調用,即一次可避免的調用找到對象,另一次調用刪除它
謝謝。 這將是很好的內置支持從刪除。任何線索爲什麼沒有這種支持? – user454322
我不知道。奧利弗吉爾克在這裏(StackOverflow),所以如果他看到這個,他可能會回答。一個想法是,你可以簡單地創建一個只有ID集的虛擬實體,然後將其傳遞給delete方法。我敢打賭,它只是使用該ID調用刪除。 (你可以打開Hibernate show SQL來驗證。)如果我是對的,那麼它只是一個單一的刪除調用。 –