- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
有什么方法可以获得给定实体对象的 EntityManager 句柄吗?我正在使用带有 JPA starter 的 spring boot 1.2.3,并且我正在使用 @configuration
我检查过 [resolved]SPRING BOOT access to 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();
}
}
在我的 application.yml 中有以下部分
first.datasource:
name: 'first_datasource',
#other attributes...
second.datasource:
name: 'second_datasource',
#other attributes...
third.final.datasource:
name: 'first_datasource',
#other attributes...
到目前为止,我已经尝试了@Stephane 的两个建议,但我得到了 NoSuchBeanDefinitionException
假设我的实体名为 Customer
然后我尝试了
@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;
没有运气。
最佳答案
这取决于您如何配置它,但您是否尝试过使用与创建它的工厂相对应的限定符注入(inject)EntityManager
?
这里是 a sample project with two data sources .如果你想为订单注入(inject)EntityManager
,只需在项目的任何Spring bean中执行以下操作
@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;
检查项目的配置以获取更多详细信息。
关于java - 在 Spring Boot 中获取 EntityManager 的句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32020249/
我设置了 Helm 柄和 Helm 柄。我有tiller-deploy。昨天,我可以定期运行了。但今天我收到此错误消息 Error: could not find a ready tiller pod
我以前已将分er安装到特定的 namespace 中。 我设置了一个环境变量来设置'tiller'命名空间-但我不记得该环境变量的名称-而且似乎无法通过网络搜索找到它。 这是什么 key ? 最佳答案
当我在 View 模型中使用如下界面时 class MainViewModel @ViewModelInject constructor( private val trafficImagesR
我正在尝试找到如何在某个 fragment 相关场景中定义 Hilt 的解决方案。我有以下设置: Activity 父 fragment 1 子 fragment 1 子 fragment 2 ...
Hilt 指出如果没有@Provides 注解就不能提供这个接口(interface): interface PlannedListRepository { fun getAllLists()
我的问题非常简单明了:两个注释/示例之间有什么区别: 例子一 @Singleton class MySingletonClass() {} @Module @InstallIn(FragmentCom
我是一名优秀的程序员,十分优秀!