分类: Hibernate预览模式: 普通 | 列表
10-03
08

解决Hibernate 3不支持 "&" 运算的SQL语句

按位与运算(&)在许多数据库中都是支持的,遗憾的是,Hibernate 3在HQL中不支持&运算,如果你写了如下的HQL:

where a.id & :mask = :target


则Hibernate报错:exception: unexpected char: '&'.

如何解决此问题?方法是利用Hibernate支持的自定义SQLFunction,定义一个bitand(a,b)的SQLFunction,然后,自己写一个解释器,生成a & b的SQL语句。

要实现一个自定义的SQLFunction,必须实现SQLFunction接口:

查看更多...

Tags: 运算 hibernate3 SQL

分类:Hibernate | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 421
09-12
19

Association references unmapped class的解决方法

搞了半天,原来我的NHibernate.cfg.xml文件里没加上新增加的hbm.xml文件
加上
Xml代码
<mapping resource="wisers/weboa/project/model/xml/item.hbm.xml" />!  

<mapping resource="wisers/weboa/project/model/xml/item.hbm.xml" />!

将实体类对应的XML文件的生产操作属性设置成嵌入的资源

查看更多...

Tags: hibernate

分类:Hibernate | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 405
09-11
06

Hibernate中根据映射文件创建数据表

只要在hibernate.cfg.xml添加这句话,就可以自动生成数据表
<property name="hibernate.hbm2ddl.auto">update</property>


update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表;如果表里缺少列,则自动添加列。

还有其他的参数:
create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失。

create-drop:启动hibernate时,自动创建表,程序关闭时,自动把相应的表都删除。所以程序结束时,表和数据也不会再存在。

查看更多...

Tags: 映射文件 建表

分类:Hibernate | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 795
09-08
15

commit后值不变,亦不报错

情况,修改了某个字段类型后,再次session.update(o);发现数据库中数值未变,也无异常抛出,排查后发现hbm.xml映射文件中该字段类型为从int改成double,导致该现象发生

Tags: commit

分类:Hibernate | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 224
09-07
17

Hibernate 自动建表 指定字符集编码

hibernate 中mysql.cfg配置文件如下:
<property name="connection.url">
    jdbc:mysql://localhost:3306/webseo?useUnicode=true
</property>

<property name="connection.characterEncoding">UTF-8</property>



但是用Hibernate自动建表的时候,表编码依旧是:

查看更多...

Tags: 自动建表 字符集 hibernate

分类:Hibernate | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1081
09-05
26

Hibernate映射文件中索引及约束的使用

1、添加索引:在一对多的关系中,在多的一方会产生一个外键,这个外键没有自动添加索引,当存在从一的一端产生对多的一端的查询时,有可能会在多的一端造成全表查询问题,数据量巨大时会产生严重的性能问题。可以在多一端的外键上添加索引(index="user_group_id_idx")来解决这个问题。例如:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.bjsxt.hibernate.User" table="t_user">
  <id name="id">

查看更多...

Tags: 映射 约束

分类:Hibernate | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 790