【发布时间】:2015-03-18 20:43:01
【问题描述】:
如果我在控制器中使用
final DataSource dataSource = (DataSource) getApplicationContext().getBean("dataSource", DataSource.class);
final JdbcTemplate jdbcTemplate = new JdbcTemplate(jdbcDataSource);
final NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
这样就可以了
如果我必须在 Spring 应用程序上下文中达到同样的效果
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" autowire="constructor" />
<bean class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"
id="namedParameterJdbcTemplate">
<constructor-arg ref="jdbcTemplate" />
</bean>
在 Hibernate 存储库类中
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
public void setNamedParameterJdbcTemplate(NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
this.namedParameterJdbcTemplate = namedParameterJdbcTemplate;
}
这会引发错误
有什么方法可以让名为ParameterJdbcTemplate 的对象在Repository 类中工作
【问题讨论】:
-
如果我猜的话,在你的 Hibernate Repository 类中,namedParameterJdbcTemplate 看起来并没有被初始化为任何东西,这可能是它抛出空指针的原因......
-
“这会引发错误”对我们没有帮助。向我们展示错误和堆栈跟踪。
-
@ryekayo 如果你不介意,你能举个例子吗
标签: spring hibernate jdbctemplate named-parameters