バックグラウンド
データテーブル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ファイルはまったく開かれません。