Eu uso SQLserver 2014, como devo proceder com minhas configurações no pom.xml e na JPAConfiguration?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Eu uso SQLserver 2014, como devo proceder com minhas configurações no pom.xml e na JPAConfiguration?
Oi Carlos
No lugar de adicionar o driver do mysql-connector-java no seu pom.xml, você vai precisar adicionar o driver do SQL Server.
mas infelizmente ele não tem uma versão publicada no maven.
Como alternativa você pode instalar manualmente. Pra isso, basta baixar o JAR:
https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774
e rodar o comando:
mvn install:install-file -Dfile=sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar
assim você consegue adicionar a dependência local no seu POM:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
Na parte do JPAConfiguration, basta adicionar o login, senha e database da forma que está fazendo, e mudar a string de conexão pra jdbc:sqlserver://... no lugar de jdbc:mysql://
Olá Rodrigo!
realizei conforme solicitado, porem deu o seguinte erro.
root cause
org.hibernate.exception.JDBCConnectionException: Could not open connection
org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:132)
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
import java.util.Properties;
import javax.persistence.EntityManagerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.JpaVendorAdapter;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement
public class JPAConfiguration {
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
factoryBean.setJpaVendorAdapter(vendorAdapter );
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUsername("sa"); //("root");
dataSource.setPassword("1234");
dataSource.setUrl("jdbc:sqlserver://localhost:3306/casadocodigo");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
factoryBean.setDataSource(dataSource);
Properties props = new Properties();
props.setProperty("hibernate.dialect" , "org.hibernate.dialect.MySQL5Dialect");
props.setProperty("hibernate.show_sql", "true");
props.setProperty("hibernate.hbm2ddl.auto", "update");
factoryBean.setJpaProperties(props);
factoryBean.setPackagesToScan("br.com.casadocodigo.loja.models");
return factoryBean;
}
@Bean
public JpaTransactionManager transactionManager(EntityManagerFactory emf) {
return new JpaTransactionManager(emf);
}
}
Oi Carlos,
Faltou alterar, também, os outros parâmetros específicos do mysql nesse trecho:
dataSource.setUrl("jdbc:sqlserver://localhost:3306/casadocodigo");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
factoryBean.setDataSource(dataSource);
Properties props = new Properties();
props.setProperty("hibernate.dialect" , "org.hibernate.dialect.MySQL5Dialect");
Precisa olhar a documentação específica da versão que você está usando, para ter certeza, mas meu chute é que isso funcionaria pra você:
dataSource.setUrl("jdbc:sqlserver://localhost:3306/casadocodigo");
dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
factoryBean.setDataSource(dataSource);
Properties props = new Properties();
props.setProperty("hibernate.dialect" , "org.hibernate.dialect.SQLServerDialect");
Pode testar isso?