我正在使用Fluent NHibernate 1.0RC(对于NHibernate 2.1.4000)以及

Linq 2 NHibernate,我想用按位和操作执行查询.我第一次尝试使用这样的Linq,但这不起作用:

var objects = _session.Linq()

.Where(x => (x.someInteger & otherInteger) > 0)

.ToList();

我的结论是Linq 2 Nhibermate不支持按位操作.所以我尝试使用HQL:

var objects = _session.CreateQuery("select c from MyClass c

where c.someInteger & :param > 0")

.SetParameter("param", otherInteger)

.List();

这也不起作用.它给了我一个ora-01036错误:“非法变量名称/号码”.

所以我的问题是:甚至可以使用NHibernate的按位运算吗?是否支持NHibernate 3.0开箱即用?这是有问题的,因为我使用的是Oracle DB,它会期望bitand()函数而不是&操作符?

最佳答案 您可以扩展Oracle方言并将BITAND添加为recoginzed HQL函数:

public class OraclePlusDialect : Oracle10gDialect

{

public OraclePlusDialect()

{

RegisterFunction("bitand", new StandardSQLFunction("bitand", NHibernateUtil.Int32));

}

}

然后你应该能够像这样执行你的查询:

var objects = _session.CreateQuery("select c from MyClass c

where bitand(c.someInteger, :param) > 0")

.SetParameter("param", otherInteger)

.List();

可能,Oracle有一个类型转换问题,因为BITAND返回一个很少使用的数据类型.如果是这种情况,请将HQL查询修改为:

select c from MyClass c

where bitand(c.someInteger, :param) + 0 > 0

bitwise oracle,linq – 与NHibernate和Oracle的Bitwise AND相关推荐

  1. ssh oracle id native,hibernate解决oracle的id自增?

    以前做SSH项目时,涉及到的数据库是mySQL,只需将bean的配置文件id设为native 就可以实现表id的自增. 现在用到了Oracle,当然知道这样是不行的啦,那么用序列自增? 我在网络上搜索 ...

  2. oracle 表列 自增,ORACLE表建立自增列

    create tablespace studentDB datafile 'E:\datafiles_1.dbf' size 10m; create user Huang_Ying_Bo identi ...

  3. oracle实例没有连到监听上6,oracle LISTENER未监听到oracle实例问题解决

    oracle LISTENER未监听到oracle实例问题解决 LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = ...

  4. oracle参数文件initorcl位置,ORACLE参数文件

    ORACLE参数文件 简介 参数文件记录了数据库的配置.在数据库启动时,Oracle要根据参数文件中的参数配置数据库.如果为各个内存池分配多少内存,允许打开的进程数和会话数等.要让数据库启动,必须先读 ...

  5. oracle 10.2 64位,Oracle 10.2.0.5 x64升级到11.2.0.3 x64

    说明:11g数据库现在新部署的数量也很多的,对于10g数据库,现在整理一下10g到11g的升级过程.10.2.0.2以上版本才能升级到11.2.0.3版本. 升级说明:10.2.0.5(64)-> ...

  6. 菜鸟也来学习ORACLE(1)_linux下安装oracle 11g

    加入 oracle Club 之前,学长给我们开了个小会  说是看看我们加入的意愿,哎哎 其实直无聊,但是大体比较重视linux 服务器的搭建 以及在linux 下安装oracle 搭建一个oracl ...

  7. ubuntu下oracle数据的导入,导入oracle数据库命令行

    Windows DOS窗体下Oracle 数据库的导入导出命令 oracle 用户创建 数据库的导入导出imp/exp 可以在SQLPLUS.EXE或者DOS(命令行)中执行 执行环境:可以在SQLP ...

  8. cmd导入oracle库文件,cmd 导入oracle数据库

    从服务器将Oracle数据库导出到本地Oracle数据库的方法 原文:从服务器将Oracle数据库导出到本地Oracle数据库的方法 1.将服务器上的Oracle数据库导入到本地   在CMD模式下执 ...

  9. chown -r oracle:oinstall /oracle,ORA-17503: 因为CHOWN -R ORACLE:OINSTALL 导致的

    ORA-17503: 由于CHOWN -R ORACLE:OINSTALL 导致的 在启动 时候报 ksfdopn:2 Failed to open file +DATA/camsdb/spfilec ...

最新文章

  1. shell expect的简单用法
  2. 解决go get 下载慢的问题
  3. 知识管理促进企业组织能力提升
  4. IBASE Read buffer invalidate when locked
  5. 一个开源的强类型客户端(.NET 中的 Open Fegin)— Rabbit Go
  6. 预约购票 php,正式上线!预约购票、参访攻略...你最关心的都在这!
  7. Google Earth 使用的经纬度格式及转换
  8. DROOPYCTF WALKTHROUGH
  9. 目前计算机无法显示的四叠字,四叠字大全列表
  10. 第6章 分支语句和逻辑运算符
  11. centos桌面显示计算机图标,Centos 桌面图标
  12. Log4Qt 日志格式化(TTCCLayout)
  13. 新时达工业机器人技术储备_国内外工业机器人发展现状-工业机器人技术国内外发展现状与趋势...
  14. Ubuntu 14.04.2 系统无线网络不稳定问题
  15. PHP Redis使用手册
  16. 微信公众号 去除 “防欺诈盗号请勿支付或输入qq密码“ 提示
  17. win10计算机导航栏怎么删除,如何自定义导航栏?win10资源管理器导航栏删除多余选项的操作方法...
  18. 超硬核!兔兔阿里p7学长给的面试知识库
  19. linux系统中的分区与挂载,以及使用LVM逻辑卷管理器管理物理卷,卷组,逻辑卷知识点总结
  20. cocos2dx:重力加速度,自由落体:利用update()就能快速实现精灵自由落体运动

热门文章

  1. yolo数据集剪裁:切割目标框并将该框内的其他目标一并提取并转为可用数据集
  2. 钉钉申请发起后台提现接口
  3. 主流大数据存储解决方案评析
  4. 请注意,java中没有引用传递
  5. uni-app开发App上架Apple Store流程(简略版)
  6. 制作win7 U盘系统启动盘
  7. 计算机素质教育论文800,关于素质教育的作文800字
  8. 面试被虐题— 谨以此致,mark一个悲惨的下午
  9. html 导出 word 调整页边距
  10. 编辑器开发(一):准备工作,百度ueditor移入项目当中