我只是想避免编写基于方法名称约定的查询和数据。下面是我的实体
@Entity
class Product{
@Id
private Integer productId;
private String productName;
private String productStrategy;
}
我有以下存储库:
interface ProductRepository extends JPARepository<Product,Integer>{
public Product findByProductStrategy(String productStrategy);
}
上面的方法和存储库对我来说很好用。但是根据以上结果,我仅使用productName
。因此,有什么方法可以使我仅获取productName
而不是获取空位记录。
注意:我知道,我们可以使用@Query
通过编写HQL查询或本机查询来实现。但是我只想使用方法名称约定而不编写查询就可以做到这一点。
答案 0 :(得分:3)
考虑从弹簧数据中使用Projections
使用所需字段为您的实体创建一个投影界面。就您而言,它应该看起来像
function init() {
fetch(url1)
.then(processJSONtoObj)
.then(function(dataObject) {
//test if user signed
if(dataObject.signedIn) {
//user signed into domain 1
} else {
return fetch(url2)
}
})
.then(processJSONtoObj)
.then(function(dataObj2) {
//test if user signed
if(dataObject2.signedIn) {
//user signed into domain 2
} else {
//user is not signed into either
}
})
}
init();
,然后将您的存储库更改为具有投影接口本身的返回类型。春天将负责其余的工作。
public interface ProductName {
String getProductName();
}
答案 1 :(得分:0)
您可以执行类似的操作,例如只需要productName
就可以使用Lite类的事件。
@Entity
@Table(name = "product")
Class ProductLite{
@Column(name = "productName", nullable=false)
private String productName;
}