Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle11g 在Hibernate中映射Oracle 11g虚拟列_Oracle11g_Hibernate Mapping - Fatal编程技术网

Oracle11g 在Hibernate中映射Oracle 11g虚拟列

Oracle11g 在Hibernate中映射Oracle 11g虚拟列,oracle11g,hibernate-mapping,Oracle11g,Hibernate Mapping,这方面的一些问题:- a。oracle 11g虚拟列是否使用特定的hibernate类型,或者使用本机类型 b。如果要使用类型,例如string、long(在hql查询中使用时,它们确实可以正常工作),那么如何使用Criteria API获取映射到虚拟列的属性 c。目前,条件查询返回空属性,尽管这些属性中确实有值。作为替代方法,我使用了formula元素,方法是调用用于派生虚拟列的函数,该函数返回带有实际值的结果集。但是,在表中有一个虚拟列是没有用的,因为处理开销再次转移到hibernate/应

这方面的一些问题:-

a。oracle 11g虚拟列是否使用特定的hibernate
类型
,或者使用本机类型

b。如果要使用类型,例如
string
long
(在hql查询中使用时,它们确实可以正常工作),那么如何使用Criteria API获取映射到虚拟列的属性

c。目前,条件查询返回空属性,尽管这些属性中确实有值。作为替代方法,我使用了
formula
元素,方法是调用用于派生虚拟列的函数,该函数返回带有实际值的结果集。但是,在表中有一个虚拟列是没有用的,因为处理开销再次转移到hibernate/应用程序代码


有什么建议吗?

虚拟列似乎有问题,Hibernate对此无能为力,因为它只生成sql

最简单的方法是使用公式属性而不是虚拟列。
如果虚拟列是预计算的,那么您可以使用普通列和触发器模拟它们。

虚拟列似乎有问题,Hibernate对此无能为力,因为它只生成sql

最简单的方法是使用公式属性而不是虚拟列。
如果虚拟列是预计算的,那么您可以使用普通列和触发器模拟它们。

调用存储过程时,处理是在oracle而不是客户端中完成的。这基本上与获取虚拟列是一样的不?是的,我想是这样。但是,即使在oracle中,显式调用pl/sql函数的开销也是存在的。虚拟列通过消除这种开销提供了好处。还有一件事,条件查询使用连接。虚拟列可能是在该连接中的某个地方被提取为空的。有没有办法控制条件查询中联接的行为?尝试捕获nhibernate(内部记录器/log4net)生成的sql并直接运行它,如果它返回正确的结果,那么问题出在NH映射端,否则是数据库返回空值不适用于.NET-我使用oracle 11g数据库和java。是的,我试过使用criteria查询生成的sql。它为虚拟列返回空值。这与标准中的联接有关。即使没有传递给条件查询的参数,例如,在默认选择的情况下,结果也是相同的空值。但是一个简单的hql查询确实返回值。调用存储过程时,处理是在oracle而不是客户端中完成的。这基本上与获取虚拟列是一样的不?是的,我想是这样。但是,即使在oracle中,显式调用pl/sql函数的开销也是存在的。虚拟列通过消除这种开销提供了好处。还有一件事,条件查询使用连接。虚拟列可能是在该连接中的某个地方被提取为空的。有没有办法控制条件查询中联接的行为?尝试捕获nhibernate(内部记录器/log4net)生成的sql并直接运行它,如果它返回正确的结果,那么问题出在NH映射端,否则是数据库返回空值不适用于.NET-我使用oracle 11g数据库和java。是的,我试过使用criteria查询生成的sql。它为虚拟列返回空值。这与标准中的联接有关。即使没有传递给条件查询的参数,例如,在默认选择的情况下,结果也是相同的空值。但是一个简单的hql查询确实返回值。