一、需求
从资产历史表中,查出资产id是“1”的所有历史资产。
二、思路
我们使用hibernate做的jpa的实现,在IDao中写这样的查询语句:
@Query(value = "select p from AssetInfoHist p where p.assetId in ?1")
public List<AssetInfoHist> queryListByAssetIds(String[] assetIds);
查询参数 ids是数组的格式,所以需要遍历list<Entity>,获取id数组;
三、代码:
String[] assetIds = new String[assetInfoHists.size()];
int index = 0;
if (null != assetInfoHists) {
for (AssetInfoHist assetInfoHist : assetInfoHists) {
assetIds [index ++] = assetInfoHist .getAssetId();
}
}
当然,也可以使用将List<String> 转成String[] 的方法。
Sql语句在任何时候都是必须掌握的