Я хочу настроить базу данных Oracle с помощью Spring boot2.
Я успешно разработал код слоя дао и модульное тестирование с внедренной базой данных H2. Но теперь, когда я предоставляю подробные сведения о конфигурации источника данных в файле applicationaiton.yaml, он не может получить данные из внешней базы данных Oracle. Ошибка не отображается.
Вот моя конфигурация
pom.xml
<!-- https://mvnrepository.com/artifact/org.eclipse.persistence/eclipselink -->
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<!-- <scope>runtime</scope> -->
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc</artifactId>
<version>11.2.0.3</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc6.jar</systemPath>
</dependency>
Уровень обслуживания:
@Autowired
SampleActivityLogRepository repository;
//inside a method
Optional<List<SampleActivityLog>> listOfActivityForToken = repository.findLogByAccNoandTokenIDOrderByDate(userId, example.getKey());
Уровень репозитория:
@Repository
@Transactional
public interface SampleActivityLogRepository extends JpaRepository<SampleActivityLog, Long> {
@Query("SELECT L FROM SampleActivityLog L WHERE L.accountId = ?1 AND L.userId = ?2 ORDER BY L.createdDate desc")
Optional<List<SampleActivityLog>> findLogByAccNoandTokenIDOrderByDate(String accNo, String userId);
}
application.yaml:
spring:
profiles: dev
logging:
level:
org.springframework: ERROR
com.example.rest.Tokennotification: DEBUG
datasource:
url: jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = example.com)(PORT = 1875))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = sit)))
username: mvcschenam
password: support$12ab
driverClassName: oracle.jdbc.OracleDriver
jpa:
database-platform: org.hibernate.dialect.Oracle10gDialect
database: H2
#openInView: false
show_sql: true
generate-ddl: false
Что я пробовал:
Я удалил зависимость h2 из файла pom.xml. но он выдал ошибку, для URL источника не настроен
Я попытался удалить автоконфигурацию с помощью @EnableAutoConfiguration (exclude = {DataSourceAutoConfiguration.class})
Но он бросил ошибку, что SampleActivityLogRepository является только интерфейсом .. необходимо реализовать. Но я не вижу большой логики здесь .. как тот же код работал при подключении к загрузочной интегрированной базе данных
Мне нужно подключиться к внешней базе данных, но я не уверен, что мне не хватает. Я не хочу менять свой код, так как считаю, что он довольно аккуратный и работает хорошо.
Пожалуйста, направьте меня, что я могу сделать здесь. Заранее спасибо