Ich arbeite mit einer vorhandenen Spring Boot-Anwendung. Die Datei application.properties gibt eine "spring.datasource
" -Datenbank an. Durch die Magie des Frühlings wurde diese Datenquelle durch die folgende NamedParameterJdbcTemplate im Code verwendet:Mehrere Datenquellen und AutoWired JDBC-Vorlage verursacht schlechte SQL-Grammatik im Frühjahr Boot
@Autowired
NamedParameterJdbcTemplate namedJdbcTemplate;
ich zusätzliche Datenquellen zugreifen müssen. Ich habe die Datenbankeigenschaften zur Datei application.properties hinzugefügt. Dann modifizierte ich die Configure.java Datei wie folgt aussehen:
@Primary
@Bean(name = "dataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "namedJdbcTemplate")
public NamedParameterJdbcTemplate namedJdbcTemplate(@Qualifier("dataSource") DataSource dataSource) {
return new NamedParameterJdbcTemplate(dataSource);
}
@Bean(name = "dbiSupportDataSource")
@ConfigurationProperties(prefix = "spring.dbisupport")
public DataSource dbiSupportDataSource() {
return DataSourceBuilder.create().build();
}
ich die automatische Verdrahtung zum namedJdbcTemplate
gehalten und hinzugefügt Auto Verdrahtung auf meine neue Datenquelle:
@Autowired
NamedParameterJdbcTemplate namedJdbcTemplate;
@Autowired
DataSource dbiSupportDataSource;
Mit diesem Code ein SQL-Abfrage an die neuen Datenbankquelle führt zu Fehlern wie folgt aus:
schlechte SQL-Grammatik [SELECT * FROM
support.core
.table]
Wenn ich die ursprüngliche Datenquelle und namedJdbcTemplate
aus der Datei Configure.java auskommentieren, funktioniert die gleiche SQL-Abfrage erfolgreich.
Ich werde auch feststellen, dass eine SQL-Abfrage zu namedJdbcTemplate
weiterhin erfolgreich funktioniert, auch wenn ich eine neue Datenquelle hinzufügen.
Habe ich beim Einrichten meiner neuen Datenquelle etwas falsch gemacht? Muss ich meine SQL-Abfrage in die neue Datenquelle ändern?