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(); } }