Spring 硬编码数据库中的引导更新字段
Spring Boot update field in database hardcoded
我的存储库中有这个
@Transactional
@Modifying
@Query(value = "UPDATE pengajuan u set u.status_approval ='Komite' where u.id_pengajuan =:idPengajuan",
nativeQuery = true)
void updateStatusPengajuan(@Param("statusApproval") String statusApproval, @Param("idPengajuan") Integer idPengajuan);
我想通过 'idPengajuan'
将 status_approval 设置为 'Komite'
现在我的服务中有了这个
public PengajuanK3 update(String statusApproval,int idPengajuan){
return pengajuanK3Repository.updateStatusPengajuan(statusApproval, idPengajuan);
}
我有点困惑我如何在服务中调用存储库,因为在存储库中是 void 类型。
您使用的查询总是将 status_approval
设置为 Komite
。从这个意义上说,您不需要在存储库更新方法中传递参数。一切都很好。
但是如果你想从 'Komite' 以外的参数动态更新 status_approval
然后这样做:
存储库:
@Transactional
@Modifying
@Query(value = "UPDATE pengajuan u set u.status_approval =:statusApproval where u.id_pengajuan =:idPengajuan",
nativeQuery = true)
void updateStatusPengajuan(@Param("statusApproval") String statusApproval,
@Param("idPengajuan") Integer idPengajuan);
并在您的服务中将 return 类型更改为 void 并删除 return.
public void update(String statusApproval,int idPengajuan){
pengajuanK3Repository.updateStatusPengajuan(statusApproval,idPengajuan);
}
在您的控制器中,调用更新方法,例如:
service.update('Komite', 1);
我更喜欢这种方式而不是硬编码,因为将来如果您需要将 status_approval
设置为其他值,您可以通过以下方式完成:
service.update('othervalues', 1);
我的存储库中有这个
@Transactional
@Modifying
@Query(value = "UPDATE pengajuan u set u.status_approval ='Komite' where u.id_pengajuan =:idPengajuan",
nativeQuery = true)
void updateStatusPengajuan(@Param("statusApproval") String statusApproval, @Param("idPengajuan") Integer idPengajuan);
我想通过 'idPengajuan'
将 status_approval 设置为 'Komite'现在我的服务中有了这个
public PengajuanK3 update(String statusApproval,int idPengajuan){
return pengajuanK3Repository.updateStatusPengajuan(statusApproval, idPengajuan);
}
我有点困惑我如何在服务中调用存储库,因为在存储库中是 void 类型。
您使用的查询总是将 status_approval
设置为 Komite
。从这个意义上说,您不需要在存储库更新方法中传递参数。一切都很好。
但是如果你想从 'Komite' 以外的参数动态更新 status_approval
然后这样做:
存储库:
@Transactional
@Modifying
@Query(value = "UPDATE pengajuan u set u.status_approval =:statusApproval where u.id_pengajuan =:idPengajuan",
nativeQuery = true)
void updateStatusPengajuan(@Param("statusApproval") String statusApproval,
@Param("idPengajuan") Integer idPengajuan);
并在您的服务中将 return 类型更改为 void 并删除 return.
public void update(String statusApproval,int idPengajuan){
pengajuanK3Repository.updateStatusPengajuan(statusApproval,idPengajuan);
}
在您的控制器中,调用更新方法,例如:
service.update('Komite', 1);
我更喜欢这种方式而不是硬编码,因为将来如果您需要将 status_approval
设置为其他值,您可以通过以下方式完成:
service.update('othervalues', 1);