1
我想收到從我的抽象類擴展的所有記錄。我有以下幾點:如何返回從存儲庫中擴展類的多個類?
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
類的子類的項目?
UPDATE:
我已經添加下面的方法到ProductRepository:
<T extends Product>List<T> findProducts();
,並在控制器改變它 - 這是正確的方式做到這一點?
,我已經使用這個錯誤是:
Caused by:
org.springframework.data.mapping.PropertyReferenceException: No
property findProducts found for type Product!
爲什麼我不使用表名?我使用TABLE_PER_CLASS策略... – uksz
哦,我很抱歉,我讀了。但是,你不應該使用'@ SecondaryTable'註解嗎?看看http://stackoverflow.com/q/3915026/6505091 – kaba713