是否可以在模型上没有JPA注释的情况下将Hibernate与JPA一起使用?
是的,这很有可能。您可以在JPA标准映射文件-
中指定对象模型类的所有相关属性
orm.xml。您也可以拥有自己的映射文件,但是您需要在中指定它们
persistence.xml。
如果不是,我的EJB是否有可能与Hibernate进行事务处理?我认为这称为JTA支持,但不确定。
如果您使用的是EJB,则会发现容器管理的事务非常有用。您需要做的就是用必需的
@TransactionManagement和
@TransactionAttribute注释为EJB
注释,容器将自动为您管理事务,包括在方法末尾提交事务(如果适用),并在事件发生时回滚事务。运行时异常或应用程序异常。
EntityManager注入到此类EJB中的所有实例(即所有持久性上下文)将自动与基础JTA事务关联。请注意,仅当您允许容器注入
EntityManager实例时,这才是正确的。如果您自己管理持久性上下文(通过从
EntityManagerFactory实例创建持久性上下文),则可能必须调用
EntityManager.joinTransaction()将持久性上下文中执行的所有工作与基础JTA事务相关联。
EntityManager如果您已将持久性上下文配置为使用JTA数据源,则这通常是必要的,因为通常将其自身与基础JTA事务相关联。如果不存在JTA事务,那么将不会发生这种关联,因此,如果您想将更改刷新到数据库,则必须加入活动的JTA转换。
有没有办法从Hibernate的XML映射配置迁移到某种JPA XML映射?
我没有意识到任何这样的工具,因为我从来没有迁移过项目,但这并不意味着没有任何工具可以满足此目的。您可能想看一下确实支持JPA 的Hibernate
Tools项目,尽管我不确定它是否允许您从Hibernate
XML格式转换为JPA格式。



