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都可以。 –