【发布时间】:2016-12-04 01:31:27
【问题描述】:
我想接收从我的抽象类扩展而来的所有记录。我有以下内容:
Product.java
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@DiscriminatorColumn(name="descriminatorColumn")
@Table(name="ProductCatalog")
public abstract class Product {
@Id
private Long id;
}
PC.java
@Entity
@Table(name = "PC")
public class PC extends Product{
private String pcType;
}
TV.java
@Entity
@Table(name = "TV")
public class TV extends Product{
private String tvType;
}
还有ProductRepository.java
public interface ProductRepository extends CrudRepository<Product, Long> {
<T extends Product>List<T> findAll(); // not working
}
在我的控制器中,我有:
@RequestMapping(value = "/product", method = GET)
public <T extends Product>List<T> findProducts(){
return productRepository.findAll();
}
如何使 findAll() 返回扩展类 Product 的子类中的所有项目?
更新:
我已将以下方法添加到 ProductRepository:
<T extends Product>List<T> findProducts();
并在控制器中更改它 - 这是正确的方法吗?
我使用这个的错误是:
Caused by:
org.springframework.data.mapping.PropertyReferenceException: No
property findProducts found for type Product!
【问题讨论】:
标签: java hibernate spring-boot