我正在寻找一些帮助清理下面的代码并减少行数。如果 get 返回空值,有没有办法不设置任何内容?
if (map.get("cpn_rate") != null) {
collateral.setCoupon(new BigDecimal(map.get("cpn_rate")));
}
if (map.get("Price") != null) {
collateral.setPrice(new BigDecimal(map.get("Price")));
}
if (map.get("Par") != null) {
collateral.setPar(new BigDecimal(map.get("Par")));
}
if (map.get("mkt_val") != null) {
collateral.setMarketValue(new BigDecimal(map.get("mkt_val")));
}
if (map.get("Accrued Intr") != null) {
collateral.setAccurInterest(new BigDecimal(map.get("Accrued Intr")));
}
if (map.get("Total Market Value") != null) {
collateral.setTotMktValue(new BigDecimal(map.get("Total Market Value")));
}
Run Code Online (Sandbox Code Playgroud) 我创建了以下方法来查找 Analysis 对象,更新其结果字段,然后最后将结果保存在数据库中,但不等待返回。
public void updateAnalysisWithResults(String uuidString, String results) {
findByUUID(uuidString).subscribe(analysis -> {
analysis.setResults(results);
computeSCARepository.save(analysis).subscribe();
});
}
Run Code Online (Sandbox Code Playgroud)
在订阅中订阅感觉写得不好。这是一个不好的做法吗?有更好的方法来写这个吗?
更新:入口点
@PatchMapping("compute/{uuid}/results")
public Mono<Void> patchAnalysisWithResults(@PathVariable String uuid, @RequestBody String results) {
return computeSCAService.updateAnalysisWithResults(uuid,results);
}
Run Code Online (Sandbox Code Playgroud)
public Mono<Void> updateAnalysisWithResults(String uuidString, String results) {
// findByUUID(uuidString).subscribe(analysis -> {
// analysis.setResults(results);
// computeSCARepository.save(analysis).subscribe();
// });
return findByUUID(uuidString)
.doOnNext(analysis -> analysis.setResults(results))
.doOnNext(computeSCARepository::save)
.then();
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试查找某个日期范围的平均开始时间,但平均功能似乎无法正常使用to_char(cast(Start_Dt as date),'HH24:MI')(Start_Dt sample:)12/12/18 02:30:13。关于如何获得理想结果的任何想法?
样品:
SELECT
job_nm
avg(to_char(cast(Start_Dt as date),'HH24:MI'))
FROM batch_table
Where Start_Dt >= trunc(sysdate-10)
group by job_nm
Run Code Online (Sandbox Code Playgroud)
错误:ORA-01722:无效号码01722。00000-“无效号码” *原因:指定的号码无效。*操作:指定一个有效数字。
理想的结果是查询仅查看最近10天运行的作业以及该期间的平均开始时间。
预期结果:
JOB_NM | AVG Time
open | 2:30
close | 3:30
Run Code Online (Sandbox Code Playgroud)