spring-data-jpa 多数据源

This commit is contained in:
程序猿DD
2016-04-07 10:21:15 +08:00
parent 064f62b638
commit ef18234c23
8 changed files with 112 additions and 21 deletions
@@ -22,12 +22,9 @@ import java.util.Map;
@EnableJpaRepositories(
entityManagerFactoryRef="entityManagerFactoryPrimary",
transactionManagerRef="transactionManagerPrimary",
basePackages= { "com.didispace.domain.one" })
basePackages= { "com.didispace.domain.p" }) //设置Repository所在位置
public class PrimaryConfig {
@Autowired
private JpaProperties jpaProperties;
@Autowired @Qualifier("primaryDataSource")
private DataSource primaryDataSource;
@@ -43,11 +40,14 @@ public class PrimaryConfig {
return builder
.dataSource(primaryDataSource)
.properties(getVendorProperties(primaryDataSource))
.packages("com.didispace.domain.one") //设置实体类所在位置
.packages("com.didispace.domain.p") //设置实体类所在位置
.persistenceUnit("primaryPersistenceUnit")
.build();
}
@Autowired
private JpaProperties jpaProperties;
private Map<String, String> getVendorProperties(DataSource dataSource) {
return jpaProperties.getHibernateProperties(dataSource);
}
@@ -21,12 +21,9 @@ import java.util.Map;
@EnableJpaRepositories(
entityManagerFactoryRef="entityManagerFactorySecondary",
transactionManagerRef="transactionManagerSecondary",
basePackages= { "com.didispace.domain.two" })
basePackages= { "com.didispace.domain.s" }) //设置Repository所在位置
public class SecondaryConfig {
@Autowired
private JpaProperties jpaProperties;
@Autowired @Qualifier("secondaryDataSource")
private DataSource secondaryDataSource;
@@ -40,11 +37,14 @@ public class SecondaryConfig {
return builder
.dataSource(secondaryDataSource)
.properties(getVendorProperties(secondaryDataSource))
.packages("com.didispace.domain.two")
.packages("com.didispace.domain.s") //设置实体类所在位置
.persistenceUnit("secondaryPersistenceUnit")
.build();
}
@Autowired
private JpaProperties jpaProperties;
private Map<String, String> getVendorProperties(DataSource dataSource) {
return jpaProperties.getHibernateProperties(dataSource);
}
@@ -1,4 +1,4 @@
package com.didispace.domain;
package com.didispace.domain.p;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -1,4 +1,4 @@
package com.didispace.domain;
package com.didispace.domain.p;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
@@ -13,12 +13,5 @@ import org.springframework.data.repository.query.Param;
*/
public interface UserRepository extends JpaRepository<User, Long> {
User findByName(String name);
User findByNameAndAge(String name, Integer age);
@Query("from User u where u.name=:name")
User findUser(@Param("name") String name);
}
@@ -0,0 +1,58 @@
package com.didispace.domain.s;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
/**
* @author 程序猿DD
* @version 1.0.0
* @date 16/3/21 下午3:35.
* @blog http://blog.didispace.com
*/
@Entity
public class Message {
@Id
@GeneratedValue
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private String content;
public Message(){}
public Message(String name, String content) {
this.name = name;
this.content = content;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
@@ -0,0 +1,15 @@
package com.didispace.domain.s;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* @author 程序猿DD
* @version 1.0.0
* @date 16/3/23 下午2:34.
* @blog http://blog.didispace.com
*/
public interface MessageRepository extends JpaRepository<Message, Long> {
}