我的服务层中有以下方法调用:
saveAdvertisement(childminderAdvertisement);
..which in 调用以下方法AdvertisementServiceImpl
:
public void saveAdvertisement(Advertisement advertisement) {
advertisementRepository.save(advertisement);
}
AdvertisementRepository
是一个org.springframework.data.jpa.repository.JpaRepository
参数化如下:
JpaRepository<Advertisement, Long>;
这是我的实体:
Advertisement
:
@RooJavaBean
@RooToString
@RooEquals
@RooJpaEntity(inheritanceType = "TABLE_PER_CLASS")
@Entity
public abstract class Advertisement {
...
ChildminderAdvertisement
:
@RooJavaBean
@RooToString
@RooEquals
@RooJpaEntity
@Entity
public class ChildminderAdvertisement extends Advertisement {
...
我注意到AdvertisementRepository
(使用超类 Advertisement 进行类型参数化)设法ChildminderAdvertisement
正确地保留实例。
我的问题是双重的:
- Spring Data Jpa 如何管理子类的实例,而我使用超类的 JpaRepository?
- 使用超类作为类型参数有什么缺点(如果有的话)?