是否有任何方法可以获取给定实体对象的EntityManager句柄?我将spring boot 1.2.3与JPA starter一起使用,并使用配置进一步明确配置多个数据源
我检查了[解决]SPRING BOOT访问entityManager,它似乎没有回答这个问题。
谢谢。
编辑:我添加了如何定义数据源的说明:
@Component
@Configuration
public class DataSources {
@Bean
@Primary
@ConfigurationProperties(prefix="first.datasource")
public DataSource getPrimaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix="second.datasource")
public DataSource getSecondDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix="third.final.datasource")
public DataSource getThirdFinalDataSource() {
return DataSourceBuilder.create().build();
}
}
在我的应用程序中。yml我有以下部分
first.datasource:
name: 'first_datasource',
#other attributes...
second.datasource:
name: 'second_datasource',
#other attributes...
third.final.datasource:
name: 'first_datasource',
#other attributes...
到目前为止,我已经尝试了@Stephane的两个建议,但我没有得到任何uchbeandefinitionexception
假设我的实体名为客户
然后我尝试了
@Service
public class FooService {
private final EntityManager entityManager;
@Autowired
public FooService(@Qualifier("customerEntityManager") EntityManager entityManager) {
...
}
}
但我也试过了
@PersistenceContext(unitName = "customer") // also tried "customers" and "first_datasource"
private EntityManager entityManager;
没有运气。
这取决于您如何配置它,但您是否尝试过在EntityManager
中注入与创建它的工厂相对应的限定符?
这里是一个带有两个数据源的示例项目。如果要为order注入EntityManager,只需在项目的任何Springbean中执行以下操作
@Service
public class FooService {
private final EntityManager entityManager;
@Autowired
public FooService(@Qualifier("orderEntityManager") EntityManager entityManager) {
...
}
}
对于客户,请使用customerEntityManager。
当然,您可以使用持久化单元名称,即
@PersistenceContext(unitName = "customers")
private EntityManager entityManager;
@PersistenceContext(unitName = "orders")
private EntityManager entityManager;
有关详细信息,请检查项目的配置。
下面是我的spring配置文件[springbeans.xml] 我的StudentDAOImpl类将实现StudentDAO接口,它将具有如下方法 最后主类
我使用Spring靴,希望提高性能。我必须下载数据库中有50000个字段的文件。使用hibernate。我在批量插入中找到了解决方案。但我不知道如何从Crudepository获得entitymanager 我创建了MyStorageService并想保存我的文件: } 如果在MyStorageService中使用 我明白了 错误[http-nio-18842-exec-1]JpaTransact
我只是想把字符串按降序排序。用户提供的输入为10,a,1,#,15,。,6输出必须为10,a,15,#,6,。,1我已经试过了。 在if语句中,我得到错误。错误:-操作员
要获取请求URL,可以在堆栈溢出中找到以下方法。 第一种方法: 第二种方法: 第三种方法: 我不知道在spring boot应用程序中使用哪一个来获取请求URL。 如果我使用第三种方法,那么我是否需要在配置类中创建RequestContextListener的bean,如下所示?
我想得到一个域名的url在我的springboot应用程序: 我曾经尝试过这样的事情: