我正在开发一个spring boot rest api,在这种情况下,当我使用来自存储库的自定义查询时,它将返回一个空列表,最糟糕的是在eclipse控制台上也不例外。 **** 另一件事********** 我还有另一个控制器,它具有不同的服务和存储库,可以正常工作。 实体
@Entity
@Table(name="Navigation_Master")
public class Navigation_Master {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="Nav_ID")
private int Nav_ID;
@Column(name="Nav_TS_ID")
private int Nav_TS_ID;
@Column(name="Nav_Application_ID")
private int Nav_Application_ID;
@Column(name="Nav_Page_ID")
private int Nav_Page_ID;
@Column(name="Nav_Reg_ID")
private int Nav_Reg_ID;
@Column(name="Nav_UnloadEvent")
private String Nav_UnloadEvent;
@Column(name="Nav_RedirectEvent")
private String Nav_RedirectEvent;
@Column(name="Nav_AppCache")
private String Nav_AppCache;
@Column(name="Nav_TTFB")
private String Nav_TTFB;
@Column(name="Nav_Processing")
private String Nav_Processing;
@Column(name="Nav_DomInteractive")
private String Nav_DomInteractive;
@Column(name="Nav_DomComplete")
private String Nav_DomComplete;
@Column(name="Nav_ContentLoad")
private String Nav_ContentLoad;
@Column(name="Nav_PageLoad")
private String Nav_PageLoad;
@Column(name="Nav_EntrySyetemTimes")
private Timestamp Nav_EntrySyetemTimes;
// Getter & setter $ constructors
}
控制器:
@GetMapping("/getNavs/{tcId}/{appid}/{pageId}/{uId}")
public List<Navigation_Master> findPageByName(@PathVariable("appid") String appid, @PathVariable("pageId") String pageId, @PathVariable("tcId") String tcId,
@PathVariable("uId") String uId) {
return navigation_MasterService.getTopOneNavigation(tcId, appid, pageId, uId);
}
服务:
@Override
public List<Navigation_Master> getTopOneNavigation(String appid, String pageId, String tcId, String uId) {
System.out.println(appid+" " + pageId + " "+ tcId + uId);
return navigation_MasterReposity.findNavByParam(Integer.parseInt(tcId), Integer.parseInt(appid), Integer.parseInt(pageId), Integer.parseInt(uId));
}
存储库:
public interface Navigation_MasterReposity extends JpaRepository<Navigation_Master, Integer> {
@Query(value="select * from Navigation_Master p where p.Nav_TS_ID=:tcid and p.Nav_Application_ID=:apid and p.Nav_Page_ID=:pgid and p.Nav_Reg_ID=:uid order by p.Nav_ID desc", nativeQuery=true)
List<Navigation_Master> findNavByParam(@Param("tcid") int tcid,
@Param("apid") int apid,
@Param("pgid") int pgid,
@Param("uid") int uid);
}
如果我正在运行此程序,我会得到一个空列表。请帮助我解决问题,谢谢。
答案 0 :(得分:1)
从控制台/日志中检查所请求的查询是否正确,并且绑定参数中的值正确。
要查看sql和绑定参数,请在application.properties/yaml中添加以下两行:
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE
欢呼