- 2
- 0
- 约4.99千字
- 约 6页
- 2019-08-05 发布于江苏
- 举报
每个表都必须有主键
自增字段(native)
id name=Id column=ID type=Int32 unsaved-value=0
generator class=native/
/id
3、one-to-many
出错原因
1、Could not excute query :HQL语句出错
2、in expected: bumen [select bumen from Bumen bumen]:未将配置文件属性改成“嵌入的资源”
3、could not resolve property:查询语句中,定义类对象后,具体字段区分大小写(应与类中变量名同)
4、The following types may not be used as proxies:类中定义变量未添加virtual
5、多表关联,主外键
6、可以将查询出来的字段属性组建成一个新的类,需要定义配置文件,在类文件中需添加构造函数。
select distinct new ViewGwFile(gwFileDetail.Id,gwFileDetail.Gwdm,gwFileDetail.GwNameLb,gwFileDetail.GwFileLb,gwFileDetail.Seen,gwFileDetail.SignonNgr,gwFileDetail.Ngr,gwFileDetail.SignonR,gwFileDetail.Ddsj,gwFileDetail.Clqk,gwFileDetail.Zh,gwFileDetail.Nian,gwFileDetail.Hao,gwFileDetail.Mj,gwFileDetail.Jb,gwFileDetail.Qfqm,gwFileDetail.Qfrq,gwFileDetail.Bt,gwFileDetail.SignonS,gwFileDetail.State) from GwFileDetail as gwFileDetail inner join gwFileDetail.gwfileprocess as process where 1=1;
HYPERLINK /RicCC/archive/2007/09/13/NHibernate-Oracle-10g-Clob-NClob-Issue.html 使用NHibernate, Oracle Clob/NClob无法插入、乱码问题
服务器Oracle 9i,客户端Oracle 10g。问题1:NHibernate配置的Driver为NHibernate.Driver.OracleClientDriver,存入Clob、NClob字段,值比较大时报错,错误信息中文:ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值英文:ORA-01461: can bind a LONG value only for insert into a LONG columnGoogle一下有很多人碰到这个问题,有人猜测是MS System.Data.OracleClient的一个Bug,方法是改用Oracle提供的Oracle.DataAccess。解决方法:下载安装ODAC (Oracle Data Access Components),将NHibernate的Driver配置为NHibernate.Driver.OracleDataClientDriver,确保运行目录下有Oracle.DataAccess.dll文件。问题2:使用Oracle.DataAccess之后可以向一个NClob字段中插入长文本,但文本有的情况下会变成乱码。具体表现是输入一些中文单词,保存后正常;输入英文字符,保存后正常;输入一段中英文混杂的html,保存后变成乱码。排除了服务器、客户端Oracle字符集设置问题。跟踪NHibernate,在调用IDbCommand执行SQL语句时,参数中的值是正常的,因此排除了程序中对文本的编码、解码问题。经过测试,使用下面的方式存入NClob的值不会变为乱码:
using Oracle.DataAccess.Client;OracleConnection?con?=?new?OracleConnection(......);con.Open();OracleTransaction?tran?=?con.BeginTransaction();OracleCommand?command?=?con.CreateCommand();command.CommandType?=?CommandType.Text;command.CommandText?=?update?cms_template?
原创力文档

文档评论(0)