我正在尝试使用TopLink将一个重型应用程序(Jnlp)从Oracle OC4j(OAS)迁移到使用Nikpselink的RH JBoss(不更改Bean的功能代码)。
如果在SELECT SQL语句中正确转换了只读Java指令:
Session session = getSession();
ReadAllQuery query = new ReadAllQuery(Employee.class);
ExpressionBuilder builder = new ExpressionBuilder();
Expression criteres = builder.get("nom").equal("Smith");
query.setSelectionCriteria(criteres);
Vector employees = (Vector) session.executeQuery(query);
Employee employeeSmith = employees.elementAt(0);
==>
SELECT * FROM employee WHERE nom='Smith';
但是,编写Java指令似乎不会被翻译成相应的SQL语句:
session.acquireUnitOfWork().deleteObject(employeeSmith);
==>
DELETE employee WHERE nom='Smith';
(同样的,session.acquireUnitOfWork().registerObject(employeeSmith)不会生成INSERT或UPDATE SQL语句)
在JBoss中是否有任何设置或参数用于在EJB提交其事务时激活该“转换”?
我想指定我正在将“本机”Oracle JDBC连接协议与会话s.xml和一个XMLMap文件(Oracle数据库表/列和Java类/属性对象之间的对应关系)一起使用,而不是持久性单元(与sistence.xml定义文件和实体管理器一起使用)。
非常感谢您的帮助和建议。
问候
当前配置:使用TopLink 11.1.1.2.0 JPA实施的Oracle OC4j 10.1.3.5.0*
目标配置:RedHat JBoss EAP 7.4,使用Nikpselink 2.7.0 JPA实现**
1条答案
按热度按时间5vf7fwbs1#
我只想快速地与社区分享一种解决我的问题的方法:在TopLink->eclipselink迁移过程中,一些连接设置从Java<->Oracle XMLMap文件(XXX.xml)和essions.xml文件中移出:
我必须在essions.xml文件中添加/移动以下标记:
和
通过这种方式,JPA提供程序可以在容器的提交阶段正确地生成写Oracle语句。
对于信息,essions.xml的XSD词典是:/org/eclipse/persistence/eclipselink_sessions_2.1.xsd in eclipselink-2.7.11库