Browsed by
月份:2018年11月

5.3.7. 使用SpEL表达式

5.3.7. 使用SpEL表达式

5.3.7. Using SpEL Expressions 从Spring Data JPA发布1.4版本时,支持使用@Query手动定义查询来支持严格的SpEL模板表达式。在查询执行时,这些表达式通过一系列预设的变量进行评估。Spring Data JPA支持entityName变量。用法为select x from #{#entityName} x。会把entityName插入关联指定库的领域类型。entityName会按如下解析:如果领域类型有@Entity注解的名称属性,则会使用此名称。否则将使用领域类型的简单类名。 As of Spring Data JPA release 1.4, we support the usage of restricted SpEL template expressions in manually defined queries that are defined with @Query. Upon query execution, these expressions are evaluated against a predefined set of variables. Spring Data JPA supports a variable called entityName. Its usage is select x from #{#entityName} x. It inserts the entityName of the domain type as…

阅读全文 Read More

5.3.6. 使用命名参数

5.3.6. 使用命名参数

5.3.6. Using Named Parameters 默认Spring Data JPA使用基于位置的参数绑定,前面的例子都是如此。当有关于参数位置的重构时,会使查询方法容易出现错误。为了解决这个问题,可以在一个方法参数上使用@Param注解,给定一个名称并在查询中绑定这个名称,如下例: By default, Spring Data JPA uses position-based parameter binding, as described in all the preceding examples. This makes query methods a little error-prone when refactoring regarding the parameter position. To solve this issue, you can use @Param annotation to give a method parameter a concrete name and bind the name in the query, as shown in the following example: 例61. 使用命名参数 Example 61. Using named parameters public interface UserRepository extends JpaRepository<User, Long> { @Query(“select u from …

阅读全文 Read More

5.3.5. 使用Sort

5.3.5. 使用Sort

5.3.5. Using Sort 提供PageRequest或者直接使用Sort可以启用排序。在Sort的实例Order中使用的属性需要匹配你的域模型,意味着需要匹配一个属性或者在查询中使用别名。JPQL将此定义为一个状态字段路径表达式。 Sorting can be done be either providing a PageRequest or by using Sort directly. The properties actually used within the Order instances of Sort need to match your domain model, which means they need to resolve to either a property or an alias used within the query. The JPQL defines this as a state field path expression. 但同时使用@Query和Sort会使Order实例的ORDER BY语句中包含函数。原因是Order添加了指定的查询字符串。默认Spring Data JPA拒绝所有包含函数调用的Order实例,但你可以使用JpaSort.unsafe来添加潜在的非安全排序。 However, using Sort together with @Query lets you sneak in non-path-checked Order ins…

阅读全文 Read More