Pergunta

Temos um aplicativo Spring/Hibernate e gostaríamos de adicionar uma pequena quantidade de JDBC por razões que envolvem desempenho e tempo de desenvolvimento. Eu posso fazer com que essa subclasse Dao hibernateaosupport e usar a conexão da sessão para executar meu JDBC, mas prefiro usar o JDBCTemplate. O JDBCTemplate, no entanto, é inicializado usando um java.sql.dataSource. Como posso usar o meu Hibernate SessionFactory existente para inicializá -lo?

Foi útil?

Solução

Você não precisa fornecer uma fonte de dados para a implementação da SessionFactory? Por que você não liga para o modelo JDBC?

Qual implementação da sessão você está usando? Se você está usando as implementações da primavera, veja ResumoSessionFactoryBean.html#getDataSource ()

Outras dicas

Você sempre pode usar uma sessão de hibernato Dowork Método - isso fornece uma Java.sql.Connection. Você pode usar esta conexão para construir uma construção a SingleConnectionDataSource (Nota: o segundo argumento deve sempre ser verdadeiro, pois você não deseja fechar a conexão subjacente) e passar este conjunto de dados para o seu JDBCTemplate ...

"Extrair uma fonte de dados da nossa configuração de hibernato parece muito trabalho para o que eu preciso"

Não vejo por que levaria tanto trabalho. É apenas uma questão de criar, cortar e copiar algumas tags e propriedades.

Por exemplo:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
      <property name="dataSource">
          <ref bean="dataSource"/>    
      </property>
...
</bean>

"Qual implementação de sessões você está usando? Se você está usando as implementações da primavera, consulte ResumosssionFactoryBean.html#getDataSource ()"

Aparentemente, getDatasource () está disponível apenas para a primavera 2.5. Aqui está a referência: Clique aqui

A primavera 2.0 não tem o getDataSource (). Aqui está a referência: Clique aqui

Nossa fábrica de sessão foi criada usando o AnoTationsSessionFactoryBean inicializado com as propriedades do hibernato ... o HibernatesessionFactory é uma fábrica de sessão. Como eu receberia uma referência ao SessionFactoryBean?

Gostaria de saber por que você usou uma sessão de sessões em vez de um local de venda de local, que é uma subclasse do anotações FactoryBean?

Não é a linha ID do feijão = "HibernatesessionFactory" Já faz referências o SessionFactoryBean?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top