StringBuilder conexão no Hibernate

1 resposta
java
L

Bom dia, como utilizar a StringBuilder para fazer um select mesmo quando a conexão e feito direto pelo Hibernate, não possui a class ConexaoFactory. estou fazendo da seguinte forma:

public void calcularDSR(Feriado f){
		StringBuilder sql = new StringBuilder();
		sql.append("SELECT qtddias,qtdferiados,qtdutil ");
		sql.append("FROM feriado ");
		sql.append("WHERE anoferiado = ? ");
		sql.append("AND mesferiado = ? ");

		Aqui está dando o erro pois não possuo essa a class ConexaoFactory, faço a conexão direto do Hibernate
		//Connection conexao = ConexaoFactory.conectar();

		PreparedStatement comando = conexao.prepareStatement(sql.toString());
		
		
		comando.setString(1, f.getAnoferiado());
		comando.setString(2, f.getMesferiado());
		
		
		
		ResultSet resultado = comando.executeQuery();
		Feriado retorno = null;
		
		if(resultado.next()){
			retorno = new Feriado();
			retorno.setQtddias(resultado.getShort("qtddias"));
			retorno.setQtdferiados(resultado.getShort("qtdferiados"));
			retorno.setQtdutil(resultado.getShort("qtdutil"));
		}
		
		//return retorno;
		
	}

Aqui está meu Hibernate:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

	<session-factory>

		<!-- Configurações de Conexão com o Banco de Dados -->
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://127.0.0.1:3306/horasextras</property>
		<property name="connection.username">root</property>
		<property name="connection.password">123456</property>

		<!-- Pool de Conexões -->
		<property name="connection.pool_size">100</property>

		<!-- SQL dialect -->
		<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>

		<!-- Gerenciamento do Contexto das Sessões -->
		<property name="current_session_context_class">thread</property>

		<!-- Cache de Segundo Nível -->
		<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

		<!-- Mostra as SQLs Geradas -->
		<property name="show_sql">true</property>

		<!-- Cria as tabelas do banco de dados -->
		<property name="hbm2ddl.auto">update</property>
		
		<!-- Mapeando da entidades -->
		<mapping class="br.com.horasExtras.domain.Funcionarios"/>
		<mapping class="br.com.horasExtras.domain.Feriado"/>
		<mapping class="br.com.horasExtras.domain.Horas"/>
		
		
		
	</session-factory>

</hibernate-configuration>

1 Resposta

J

Dá uma olhada em como usar SQL nativo pelo Hibernate, consulte a documentação da versão que você usa:
https://docs.jboss.org/hibernate/core/3.5/reference/pt-BR/html/querysql.html
https://docs.jboss.org/hibernate/orm/5.1/userguide/html_single/chapters/query-native/Native.html

Pra seguir da forma que está fazendo pegando a conexão real JDBC, depende da versão do Hibernate, dá uma olhada: http://stackoverflow.com/questions/3526556/session-connection-deprecated-on-hibernate

Criado 21 de janeiro de 2017
Ultima resposta 21 de jan. de 2017
Respostas 1
Participantes 2