Springboot jpa多数据源

1.SpringBootApplication

package com.xx.xxx;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; @SpringBootApplication(exclude={DataSourceAutoConfiguration.class}) public class Application { @Bean @Primary public LocalContainerEntityManagerFactoryBean entityManagerFactory(){ LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); factoryBean.setPersistenceUnitName("default"); return factoryBean; } @Bean public LocalContainerEntityManagerFactoryBean boJun(){ LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); factoryBean.setPersistenceUnitName("boJun"); return factoryBean; } public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

2.resources/META-INF/persistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
             version="1.0">
    <persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <properties>
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.connection.url" value="jdbc:mysql://192.168.80.174:3306/xx?characterEncoding=UTF-8"/>
            <property name="hibernate.connection.username" value="root"/>
            <property name="hibernate.connection.password" value="xxx"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
            <property name="hibernate.show_sql" value="true"/>
        </properties>
    </persistence-unit>
    <persistence-unit name="boJun" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <properties>
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
            <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
            <property name="url" value="jdbc:oracle:thin:@//192.168.80.91:1521/xxx"/>
            <property name="username" value="xx"/>
            <property name="password" value="xxx"/>
            <property name="filters" value="stat"/>
            <property name="initialSize" value="2"/>
            <property name="maxActive" value="100"/>
            <property name="minIdle" value="5"/>
            <property name="maxWait" value="60000"/>
            <property name="useUnfairLock" value="true"/>
            <property name="validationQuery" value="SELECT 1 from dual" />
            <property name="testWhileIdle" value="true" />
            <property name="testOnBorrow" value="false" />
            <property name="testOnReturn" value="false" />
            <property name="minEvictableIdleTimeMillis" value="60000" />
            <property name="timeBetweenEvictionRunsMillis" value="60000" />
            <property name="removeAbandoned" value="true" />
            <property name="removeAbandonedTimeout" value="180" />
            <property name="logAbandoned" value="true" />
        </properties>
    </persistence-unit>
</persistence>

3.dao

package com.xx.xxx.modules.repertory.dao;

import org.hibernate.SQLQuery;
import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import java.util.List; import java.util.Map;

/** * @author DurantSimpson * @desc * @create 2018-05-23 17:53 **/ @Repository public class ProductDao { @PersistenceContext(unitName = "boJun") private EntityManager entityManager; public List<Map<String,Object>> fuzzyByNo(String productNo){ String sql = "SELECT name productno FROM M_PRODUCT where NAME like '%'||'"+productNo+"'||'%'"; return entityManager.createNativeQuery(sql).getResultList(); } public List<Map<String,Object>> getStoreStock(String productNo){ String sql = "SELECT name productno FROM M_PRODUCT where NAME like '%'||'"+productNo+"'||'%'"; return entityManager.createNativeQuery(sql).unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list(); } }

猜你喜欢

转载自www.cnblogs.com/DurantSimpson/p/9460733.html
今日推荐