Heim > Java > javaLernprogramm > So lösen Sie das Problem, dass TypeAlias ​​​​Mybatis basierend auf SpringBoot lädt

So lösen Sie das Problem, dass TypeAlias ​​​​Mybatis basierend auf SpringBoot lädt

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2023-05-25 16:01:06
nach vorne
1095 Leute haben es durchsucht

SpringBoot lädt TypeAlias ​​​​von Mybatis

Nachdem Springboot in ein JAR kompiliert und dann unter Linux ausgeführt wurde, wird gemeldet, dass die dem Typalias entsprechende Entitätsklasse nicht gefunden werden kann. Dies ist ein Problem beim Scannen von Springboot-Paketen.

Mybatis' DefaultVFS wird standardmäßig zum Scannen im Projekt verwendet. In der Springboot-Umgebung verursacht Mybatis' DefaultVFS jedoch Probleme beim Scannen von Paketen, daher kann das VFS nur geändert werden, um es klarer zu machen

direkt einfügen Der Code:

@Bean
    public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
        logger.info("load SpringBootVFS");
        //DefaultVFS在获取jar上存在问题,使用springboot只能修改
        VFS.addImplClass(SpringBootVFS.class);
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource());
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        Resource[] resources1 = resolver.getResources("classpath*:/mybatis/*.xml");
        Resource[] resources2 = resolver.getResources("classpath*:/mysql/mapper/*.xml");
        Resource[] resources = (Resource[]) ArrayUtils.addAll(resources1,resources2);
        sqlSessionFactoryBean.setMapperLocations(resources);
        sqlSessionFactoryBean.setTypeAliasesPackage("com.xxx.xx.entity");
        return sqlSessionFactoryBean.getObject();
    }
Nach dem Login kopieren

springboot Beim Starten des Pakets tritt ein Fehler auf, der besagt, dass der typeAlias-Klassenname von mybatis nicht gefunden werden kann.

Das SpringBoot-Projekt wird normal auf IDEA ausgeführt, aber nach dem Ausführen nach dem Packen tritt ein Fehler auf. Der Fehler ist ungefähr Dieser TypAlias ​​​​kann die XX-Klasse nicht finden, wenn Mybatis Mapper.xml analysiert

Das Tag in Mapper:

<select parameterType="XXClass" resultMap="XXMap">
Nach dem Login kopieren

Diese Schreibweise läuft problemlos in IDEA, aber es gibt ein Problem mit der Verpackung

Richtige Schreibweise:

<select parameterType="cn.test.xxx.XXClass" resultMap="XXMap">
Nach dem Login kopieren

Der ParameterType im Code muss den vollständigen Pfad verwenden, sonst tritt ein Fehler auf.

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass TypeAlias ​​​​Mybatis basierend auf SpringBoot lädt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage