1
背景數據庫唯一鍵,JPA存儲庫和getByUniqueKey簽名:它是如何工作的?
DATATABLE item
:
+---------+---------+--------+
| field | type | index |
+---------+---------+--------+
| id_item | INT | PK |
| name | VARCHAR | UNIQUE |
+---------+---------+--------+
ItemRepository.java
:
public interface ItemRepository extends CustomRepository<Item, Integer> {
public Item getByName(String name); // because of the unique index
}
CustomRepository.java
:
@NoRepositoryBean
public interface CustomRepository<E, PK extends Serializable> extends PagingAndSortingRepository<E, PK>, JpaSpecificationExecutor<E> {
// common methods
}
CustomRepositoryImpl.java
:
public class CustomRepositoryImpl<E, PK extends Serializable> extends SimpleJpaRepository<E, PK> implements CustomRepository<E, PK> {
// common methods implementations
}
問題
正如你所看到的,不過是沒有界面ItemRepository
的實現。這意味着getByName
方法只有一個簽名,並且從未在任何地方實現。但它的工作。怎麼樣?
PS
對於持懷疑態度,與Eclipse,保持Ctrl鍵按下和鼠標時在getByName
簽名,點擊Open Implementation
不打開任何JAVA文件都沒有。
謝謝。它似乎也適用於'findByX'而不是'getByX'? – sp00m
是的:findBy,find,readBy,read,getBy和get都可以。 –