Sql Hibernate:Oracle与独立表上的(+;)连接
基本上,问题是:Sql Hibernate:Oracle与独立表上的(+;)连接,sql,oracle,hibernate,Sql,Oracle,Hibernate,基本上,问题是: 我无法使用“(+)”联接更改现有查询 我需要使用Hibernate 我无法在这些独立的表之间建立关联 到目前为止,我得到的是使用 entityMgr.createNativeQuery(“我的连接(+)查询在此”) 然后我将其存储在一个通用的 List List=query.getResultList() 并通过 for(Object obj: list) { firstColVal = obj[1] ... } 问题:这是我的最佳
entityMgr.createNativeQuery(“我的连接(+)查询在此”)代码>
然后我将其存储在一个通用的
List List=query.getResultList()
并通过
for(Object obj: list) {
firstColVal = obj[1]
...
}
问题:这是我的最佳选择吗?有更好的解决方案吗
编辑:你们可以建议一个比Hibernate更合适的ORM框架:)不能从查询中删除的oracle join操作被弃用,因为它是在ANSI标准之前引入的
该运算符不同于典型的联接,但主要区别在于,使用它可以比使用ANSI符号做得更少
您的解决方案可能是在数据库上创建一个视图,该视图将在代码中映射。但你的解决方案仍然有效。您还可以添加一个,它将为结果生成有效的元组 您能分享一下为什么不能删除该运算符吗?查询将以这种方式工作,但在这种情况下,我不明白使用Hibernate的意义…@Vash像往常一样,客户端规范加上遗留数据库。@AdamDyga,很好,但我们需要Hibernate来正确处理事务、持久化等。我们只是不能使用Hibernate进行连接(目前为止)。它没有被弃用-仍然可用。没什么不同;它的工作原理与@Bem相同,Oracle建议不要在新代码中使用它,当然工作方式也不同。因为它仅适用于where子句,并且不在块上操作。因此,它有其局限性,您可以创建一个ANSI查询,它可以作为(+)工作,但不能作为(+)工作。@Ben,请参阅外部连接部分@Ben:it“不推荐使用”。“Oracle建议您使用From子句外部连接语法,而不是Oracle连接运算符”我不知道如何集成“结果转换器”,因为我有一个javax.persistence.Query和.addResultTransformer仅用于org.hibernate.Query