Dan*_*ons 7 java hibernate jpa ejb-3.0
我有一个大型的非Java EE,基于JSF的Web应用程序项目.我们的系统是分层的(在源代码意义上):有一个数据模型包,在此基础上是DAO包.我们在DAO包中专门使用Hibernate的XML配置映射.我们真的不想用注释来混淆数据模型,但是并没有专门与Hibernate结合(除了映射非常复杂).
我强烈考虑转向Java EE并将DAO对象构建为EJB.但是由于我们不愿意放弃Hibernate的XML,这引出了几个问题:
谢谢!
是否有可能在没有JPA注释的情况下将Hibernate与JPA一起使用?
是的,这很有可能.您可以在JPA标准映射文件中指定对象模型类的所有相关属性orm.xml.您也可以拥有自己的映射文件,但是您需要在中指定它们persistence.xml.
如果没有,我的EJB是否有可能在Hibernate上以事务方式运行?我认为这称为JTA支持,但不确定.
如果您使用的是EJB,那么您会发现容器管理的事务非常有用.您需要做的就是使用required @TransactionManagement和@TransactionAttributeannotations注释EJB,容器将自动为您管理事务,包括在方法结束时提交事务(如果适用),并在事件中回滚事务运行时异常或应用程序异常.
EntityManager注入此类EJB的所有实例(即所有持久性上下文)都将自动与基础JTA事务关联.请注意,仅当您允许容器注入EntityManager实例时才会出现这种情况.如果您自己管理持久性上下文(通过从EntityManagerFactory实例创建它们),那么您可能必须调用EntityManager.joinTransaction()将持久性上下文中执行的所有工作与基础JTA事务相关联.这是必要的,因为EntityManager如果您已将持久性上下文配置为使用JTA数据源,则通常将其自身与基础JTA事务关联.如果不存在JTA事务,则不会发生此类关联,因此如果要将更改刷新到数据库,则必须使用活动JTA转换进行联接.
有没有办法从Hibernate的XML映射配置迁移到某种JPA XML映射?
我没有意识到任何这样的工具,因为我从来没有必要迁移一个项目,但这并不意味着没有任何工具可以用于此目的.你可能想看看支持JPA 的Hibernate Tools项目,虽然我不确定它是否允许你从Hibernate XML格式转换为JPA格式.
| 归档时间: |
|
| 查看次数: |
7407 次 |
| 最近记录: |