Ich war ein wenig süchtig nach der Entwicklung mit Spring Boot2 x Doma2, daher werde ich es als Memorandum behalten.
Spring Boot 2.1.7 Java11 IntelliJ 2018.3 DOMA doma-spring-boot-starter:1.1.1 MySQL 5.7 gradle 5.4.1
Dieser Fehler kann auch dann auftreten, wenn die SQL-Datei die richtige Verzeichnisstruktur aufweist (siehe unten).
Beispiel) - Der Speicherort der SQL-Datei ist korrekt UserRepostory findOne-Methode src/main/xxx/domain/repository/UserResotiory.java src/main/resources/META-INF/xxx/domain/repository/UserResotiory/findOne.sql
Fügen Sie build.gradle Folgendes hinzu
processResources.destinationDir = compileJava.destinationDir
compileJava.dependsOn processResources
Referenz: https://github.com/domaframework/simple-boilerplate/blob/master/build.gradle
Der folgende Fehler required a bean of type xxxxxRepository that could not be found. Consider defining a bean of type xxxxxx
Es wird davon ausgegangen, dass die folgenden Einstellungen in IntellJ vorgenommen werden (dies sollte erfolgen, wenn Lombok enthalten ist). In Einstellungen> Erstellen, Ausführen, Bereitstellen> Anmerkungsprozessoren Aktivieren Sie die Option Anmerkungsverarbeitung aktivieren
Fügen Sie der Repository-Schnittstelle (Dao) die Annotation ConfigAutowireable hinzu
Wenn Sie auch bei einer unbekannten Spalte durchgehen möchten, müssen Sie die Config-Klasse von Doma erstellen und UnknownColumnHandler überschreiben. (Es sollte andere Fälle geben, in denen Config erforderlich ist.) Im offiziellen Dokument steht die Methode zur Verwendung von SingletonConfig ganz oben. Im Fall von Spring Boot ist jedoch eine erweiterte Methode erforderlich, die dem Framework entspricht.
DomaConfig.java
@Configuration
public class DomaConfig implements Config {
@Autowired
private DomaAutoConfiguration domaAutoConfiguration;
@Autowired
private DataSource dataSource;
@Override
public DataSource getDataSource() {
return dataSource;
}
@Override
public UnknownColumnHandler getUnknownColumnHandler() {
return new UnknownColumnHandler() {
@Override
public void handle(Query query, EntityType<?> entityType, String unknownColumnName) {
//Überschreiben und zerdrücken
}
};
}
@Override
public Dialect getDialect() {
return domaAutoConfiguration.dialect();
}
@Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource primaryDataSource(DataSourceProperties properties) {
return properties.initializeDataSourceBuilder().build();
}
}
Ich denke, mein Batis ist für Spring Boot 2 ORM üblich, aber ich habe aus den folgenden Gründen versucht, Doma 2 zu verwenden.
Recommended Posts