我的应用程序使用Spring 2.5和本机TopLink 10g。我想将应用程序从本地TopLink迁移到EclipseLink。

当前,我的应用程序extends TopLinkDaoSupport.java(在Spring 2.5中)中的每个DAO都为了对所有数据库操作使用#getSession()方法,但是该方法的返回类型是oracle.toplink.sessions.Session而不是org.eclipse.persistence.sessions

上述问题有解决方案吗?

最佳答案

我还建议使用JPA代替旧的TopLink API。
如果确实需要访问Session对象,也可以从EntityManager获取它。在org.eclipse.persistence.internal.jpa.EntityManagerImpl中检查EclipseLink-这是实现EntityManager的类。实现了一个getDelegate()方法,该方法返回此(EntityManagerImpl),因此((org.eclipse.persistence.jpa.JpaEntityManager)[EntityManager].getDelegate()).getActiveSession()为您提供org.eclipse.persistence.sessions.Session

09-13 06:07