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