package com.github.marschall.threeten.jpa.jdbc42.hibernate;
import static org.junit.Assert.assertEquals;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.junit.Ignore;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.transaction.PlatformTransactionManager;
import com.github.marschall.threeten.jpa.jdbc42.hibernate.SqlServerTest.LocalConfiguration;
import com.github.marschall.threeten.jpa.jdbc42.hibernate.configuration.SqlServerConfiguration;
@Ignore
@ContextConfiguration(classes = {SqlServerConfiguration.class, LocalConfiguration.class})
@Sql("classpath:sqlserver-schema.sql")
@Sql("classpath:sqlserver-data.sql")
public class SqlServerTest extends AbstractTransactionalJUnit4SpringContextTests {
@Autowired
private DataSource dataSource;
@Test
public void getObject() throws SQLException {
try (Connection connection = this.dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(
"SELECT OFFSET_TIME"
+ " FROM java_time_42_with_zone");
ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
Object dateTimeOffset = resultSet.getObject(1);
assertEquals("microsoft.sql.DateTimeOffset", dateTimeOffset.getClass().getName());
System.out.println(dateTimeOffset);
}
}
}
@Configuration
static class LocalConfiguration {
@Autowired
private DataSource dataSource;
@Bean
public PlatformTransactionManager txManager() {
return new DataSourceTransactionManager(this.dataSource);
}
}
}