如何将SQLServerDataTable对象传递给JPA本机查询

时间:2018-11-29 10:31:13

标签: jpa spring-data-jpa nativequery

我试图将SQLServerDataTable作为参数传递给JPA本机查询。

@Query(value = "Select u FROM #{#entityName} u with (nolock) INNER JOIN :listTable pt on pt.PhoneNumber = #{#entityName}.PhoneNumber WHERE EntityType = :entityType", nativeQuery = true)
Collection<Result> findAllByEntityList(@Param("listTable") SQLServerDataTable listTable, @Param("entityType") Integer entityType);

我收到以下异常:

  nested exception is org.hibernate.HibernateException: Could not determine a type for class: com.microsoft.sqlserver.jdbc.SQLServerDataTable

我该如何解决此错误?

2 个答案:

答案 0 :(得分:0)

看起来像Spring JPA / Hibernate当前实现尚不支持将SQLServerDataTable作为参数传递。

我通过在JDBC层进行实现来解决了这个问题。

答案 1 :(得分:0)

除了上述@Brian Antao的答案外,还有一些不错的JDBC实现here代码。

如果您想注入一个Spring数据源bean,可以阅读如何配置它here

这样可以轻松访问您的数据源,就像这样:

SQLServerPreparedStatement statement = (SQLServerPreparedStatement) dataSource.getConnection().prepareStatement(ececStoredProc)