|
@@ -1,13 +1,10 @@
|
|
|
package com.tzld.videoVector.config.db;
|
|
package com.tzld.videoVector.config.db;
|
|
|
|
|
|
|
|
-import com.tzld.videoVector.config.mybatis.HnswEfSearchInterceptor;
|
|
|
|
|
import com.zaxxer.hikari.HikariDataSource;
|
|
import com.zaxxer.hikari.HikariDataSource;
|
|
|
import org.apache.ibatis.session.SqlSessionFactory;
|
|
import org.apache.ibatis.session.SqlSessionFactory;
|
|
|
import org.mybatis.spring.SqlSessionFactoryBean;
|
|
import org.mybatis.spring.SqlSessionFactoryBean;
|
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
|
-import org.springframework.boot.jdbc.DataSourceBuilder;
|
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
|
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
|
@@ -21,18 +18,11 @@ import javax.sql.DataSource;
|
|
|
@EnableTransactionManagement
|
|
@EnableTransactionManagement
|
|
|
public class PgVectorDBConfig {
|
|
public class PgVectorDBConfig {
|
|
|
|
|
|
|
|
- @Value("${spring.datasource.pg-vector.connection-init-sql:}")
|
|
|
|
|
- private String connectionInitSql;
|
|
|
|
|
-
|
|
|
|
|
// 1. 配置 pgVector 数据源
|
|
// 1. 配置 pgVector 数据源
|
|
|
@Bean(name = "pgVectorDataSource")
|
|
@Bean(name = "pgVectorDataSource")
|
|
|
@ConfigurationProperties(prefix = "spring.datasource.pg-vector")
|
|
@ConfigurationProperties(prefix = "spring.datasource.pg-vector")
|
|
|
public DataSource pgVectorDataSource() {
|
|
public DataSource pgVectorDataSource() {
|
|
|
- HikariDataSource dataSource = (HikariDataSource) DataSourceBuilder.create().build();
|
|
|
|
|
- if (connectionInitSql != null && !connectionInitSql.isEmpty()) {
|
|
|
|
|
- dataSource.setConnectionInitSql(connectionInitSql);
|
|
|
|
|
- }
|
|
|
|
|
- return dataSource;
|
|
|
|
|
|
|
+ return new HikariDataSource();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 2. 配置 pgVector 专属 SqlSessionFactory(独立 Configuration,避免与 MySQL 数据源互相污染)
|
|
// 2. 配置 pgVector 专属 SqlSessionFactory(独立 Configuration,避免与 MySQL 数据源互相污染)
|
|
@@ -57,7 +47,7 @@ public class PgVectorDBConfig {
|
|
|
org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
|
|
org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
|
|
|
configuration.setMapUnderscoreToCamelCase(true);
|
|
configuration.setMapUnderscoreToCamelCase(true);
|
|
|
configuration.setUseGeneratedKeys(true);
|
|
configuration.setUseGeneratedKeys(true);
|
|
|
- configuration.addInterceptor(new HnswEfSearchInterceptor());
|
|
|
|
|
|
|
+ configuration.addInterceptor(new com.tzld.videoVector.config.mybatis.HnswEfSearchInterceptor());
|
|
|
sessionFactory.setConfiguration(configuration);
|
|
sessionFactory.setConfiguration(configuration);
|
|
|
sessionFactory.setTypeAliasesPackage("com.tzld.videoVector");
|
|
sessionFactory.setTypeAliasesPackage("com.tzld.videoVector");
|
|
|
return sessionFactory.getObject();
|
|
return sessionFactory.getObject();
|