Eclipse开发EJB3 - EclipseLink属性

Glassfish v3使用EclipseLink作为默认的JPA 2.0参考实现。实际使用中,可以利用EclipseLink的属性来完成一些有趣的功能。

 

在JPA的Persistence Unit配置文件persistence.xml里,可以通过Property元素来指定一些每个JPA实现特有的属性。对于EclipseLink而言,可以通过设置属性完成诸如自动更新schema,或者生成Entity的DDL脚本的功能。

 

自动更新Schema

Eclipse开发EJB3 为例,如果把TennisEJB项目下的persistence.xml改成:

那么就能在每次把EJB部署到Glassfish上时,把Persistence Unit中所有Entity的改动同步更新至数据库的schema。这个过程(包括生成DDL脚本,并且在数据库执行生成的脚本)都是由Glassfish自动完成。

这样就不用在改完Entity后,手工去更新数据库的schema了。

 

生成DDL脚本

如果使用如下的persistence.xml

每次部署EJB时,Glassfish会在eclipselink.application-location指定的位置,生成名为eclipselink.create-ddl-jdbc-file-name和eclipselink.drop-ddl-jdbc-file-name的DDL脚本。

这样可以检查Glassfish更新schema使用的DDL语句。

 

这里我把eclipselink.ddl-generation.output-mode设为both,照道理Glassfish应该先在指定位置生成DDL脚本,然后在数据库执行DDL语句。很奇怪的是,Glassfish只是生成了DDL脚本,而并没有更新schema,不知道这是为啥。

 

Tips:

如果eclipselink属性不起作用,可以试着把eclipse中的servers标签页里的glassfish server删掉,再重新建一个新的glassfish server。

 

参考

Using EclipseLink JPA Extensions for Schema Generation

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值