play2框架 jpa mysql_Play!2.1 通过JPA连接多个数据库

Play framework连接多数据库很简单。

但是这个很简单耗费了我整整两天的时间来找到这个答案。

还好苍天,我还是找到了。

=============================================================

Play通过Ebean好像可以很方便的链接多数据库,但是我使用的是JPA。

所以关于EBEAN是不是能“很方便的”连接多数据库我尽量不发表言论。

Hibernate连接数据库的方法据说有两种:

1.注解@PersistenceUnit或@PersistenceContext

2.配置JPA.getJPAConfig

完全不知道的可以继续往下看,否则可以跳过这一段。

先说想Play JPA中多数据源的配置吧。

先增加持久化单元:在conf/META-INF的persistence.xml中增加,完后是这样:

org.hibernate.ejb.HibernatePersistence

DefaultDS

org.hibernate.ejb.HibernatePersistence

OracleDS

然后在application.conf中增加数据源,完后如下:

db.default.driver=org.h2.Driver

db.default.url="jdbc:h2:file:E:/work/setup/db/data"

db.default.user=sa

db.default.password=sa

db.default.auth=false

db.default.jndiName=DefaultDS

jpa.default=defaultPersistenceUnit

db.oracle.driver=oracle.jdbc.driver.OracleDriver

db.oracle.url="jdbc:oracle:thin:@10.1.20.65:1521:abc"

db.oracle.user=LOG

db.oracle.password=LOG

db.oracle.jndiName=OracleDS

jpa.oracle=ojdbcPersistenceUnit

接下来就是痛苦的探索如何进行多数据库访问。

在网上搜索“jpa 多数据源”找到的基本都是和SPRING结合的,没想到JPA已经快成为spring的专属了。。。

通过在stackof上提问,得到的答案是刚才提到的两种方法:

但是这两种方法都不能奏效。可以留意我在问题下面的跟注。

尤其后来找到这个

幸运的是终于找到了这个

从问题下面作者的回复看到尽管

jpa.getConfig("sth").em()

不管事,但是可以用

jpa.em("sth")

于是改成这样:

JPA.em("default").createQuery(

大功终于告成 。只要为em()指定连接对象即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值