【问题标题】:Where the JPA query parameter is shipped in Hibernate?JPA 查询参数在 Hibernate 中的位置?
【发布时间】:2012-02-17 15:05:02
【问题描述】:

一个非常简单的spring仓库:

public interface OrganizationRepository extends CrudRepository<Organization, Long> {


@Query("select o.name from Organization o where o.name like ?1 ")
List<String> findCompanyName(String term);

}

调用也很简单:

    @RequestMapping(value="/names", method=RequestMethod.GET)
public @ResponseBody List<String> getCompanyNameList(@RequestParam String term) {
    List<String> companyNames=organizationRepository.findCompanyName(term);

    return companyNames;
}

但在控制台中我只得到如下 SQL:

2012-02-17 23:00:18,105 DEBUG: select organizati0_.name as col_0_0_ from Organization organizati0_ where organizati0_.name like ? >>> org.hibernate.engine.jdbc.spi.SqlStatementLogger.logStatement(SqlStatementLogger.java:104)

休眠:从组织organizati0_中选择organizati0_.name as col_0_0_ whereorganizati0_.name like ?

哪里出错了?

我正在使用 spring-mvc 3.1.0、Spring-data-jpa 1.1.0、hibernate-entitymanger 4.0.1 Final

【问题讨论】:

    标签: hibernate spring jpa-2.0


    【解决方案1】:

    查询看起来没问题。

    如果您希望查看传递给查询的实际参数值,请将以下条目添加到 log4j.properties

    log4j.logger.org.hibernate.type=trace
    

    【讨论】:

      【解决方案2】:

      那个?是不正确的。它应该类似于 '...where o.name like :name'。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-09
        • 1970-01-01
        • 2021-12-06
        • 2018-04-27
        • 2015-07-31
        • 1970-01-01
        • 2015-03-14
        相关资源
        最近更新 更多