我正在使用 Spring 和 Hibernate 开发应用程序。我想知道为什么有两个单独的方法 getNamedQuery(String name) 和 createNamedQuery(String name)。
我在这里检查了 Javadoc ,发现除了 createNamedQuery 接受本机 sql 之外,描述是相似的(有单独的方法 createNativeQuery、getNamedNativeQuery、getNamedSQLQuery 来创建本机查询)。
我想了解是否有任何其他根本区别使我的查询更快/更慢。
获取命名查询:
Query getNamedQuery(String queryName) 为命名查询创建一个 Query 实例。参数: queryName - 预定义的命名查询的名称返回: 用于操作和执行的查询实例抛出: IllegalArgumentException - 如果未使用给定名称定义查询或发现查询字符串无效
创建命名查询:
Query createNamedQuery(String name) JPA 定义的命名查询创建方法。这种形式可以表示 HQL/JPQL 查询或本机查询。参数: name - 预定义的命名查询的名称返回: 用于操作和执行的查询实例抛出: IllegalArgumentException - 如果未使用给定名称定义查询或发现查询字符串无效另请参见: EntityManager.createNamedQuery(String)
我想实现类似下面的代码来验证我的输入,@RestController
以便我可以避免显式空检查,但是我被卡住了.
public @ResponseBody Response getCityDetails(@RequestParam("city") final String city) {
Optional.of(city).ifPresent(name -> {
// return value
return service.getDetails(name);
}).orElseThrow(//some Exception);
}
Run Code Online (Sandbox Code Playgroud) 我当前正在运行spring-boot version 1.4.0.RELEASE
带有嵌入式tomcat的应用程序。包含的Tomcat版本是8.5.4
需要将tomcat版本更新为9.x
。当我在这里查看mvnrepository时,我发现tomcat版本有可用的更新9.0.5
(如下图所示)
如果无法在我的项目中直接提及此版本,该如何在项目中使用该版本pom.xml
?
我不想走传统的部署路线(外部雄猫上的WAR工件)。