小编sha*_*ulk的帖子

休眠会话的 getNamedQuery(String name) 和 createNamedQuery(String name) 有什么区别?

我正在使用 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)

java hibernate jpa

5
推荐指数
1
解决办法
1606
查看次数

如何正确使用Java 8 Optional可以有条件地返回值或抛出异常?

我想实现类似下面的代码来验证我的输入,@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)

java optional java-8

5
推荐指数
1
解决办法
174
查看次数

如何在现有的Spring Boot应用程序中更改嵌入式tomcat的版本?

我当前正在运行spring-boot version 1.4.0.RELEASE带有嵌入式tomcat的应用程序。包含的Tomcat版本是8.5.4

需要将tomcat版本更新为9.x。当我在这里查看mvnrepository时,我发现tomcat版本有可用的更新9.0.5(如下图所示)

在此处输入图片说明

如果无法在我的项目中直接提及此版本,该如何在项目中使用该版本pom.xml

我不想走传统的部署路线(外部雄猫上的WAR工件)。

tomcat spring-boot embedded-tomcat-8

3
推荐指数
2
解决办法
5224
查看次数