分类: Hibernate预览模式: 普通 | 列表
09-05
26

Hibernate中discriminator

tbl_user 是一张表。User是它一个po,NormalUser也是它的一个po,NormalUser继承于User,那么将User和NormalUser持久到数据库的tbl_user中,tbl_user是怎么区分的呢?tbl_user中有一个字段type,它是来区分的。

来看他们的映射文件:


Java代码
<class name="com.apidoc.app.user.model.User"    
        table="tbl_user"  
        discriminator-value="2">  

查看更多...

Tags: discriminator

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

Hibernate中的继承映射

Hibernate的继承映射包含了三种不同的策略:


每簇类使用一个表;
每个子类一个表;
每个具体内一个表(有限制)。

假设我们有四个类Animal,Dog,Cat,其代码如下:
文件名:Animal.java

查看更多...

Tags: 继承 映射

分类:Hibernate | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 433
09-04
18

No Dialect mapping for JDBC type 3错误

自定义Hibernate Dialect解决createSQLQuery时的decimal,long类型问题

org.hibernate.MappingException: No Dialect mapping for JDBC type: 3

首先建一个类,继承org.hibernate.dialect.DB2Dialect,该类的内容如下:

import java.sql.Types;

import org.hibernate.Hibernate;

查看更多...

Tags: Dialect mapping

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

在Hibernate中使用数据库字段默认值的配置

1、在相关表的映射XML文件的class项增加:dynamic-insert="true"
2、同时需在相关字段设置:not-null="false"  

查看更多...

Tags: 字段 默认值

分类:Hibernate | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 381
09-03
13

Hibernate访问多个数据库

一、Hibernate访问数据库时加载的过程

对于大多数使用Hibernate的朋友来说,通常使用一下方式来获得Configuration实例: Configuration configure = new Configuration().configure();

在Hibernate中,Configuration是hibernate的入口。在实例化一个Configuration的时候,Hibernate会自动在环境变量(classpath)里面查找Hibernate配置文件hibernate.properties。如果该文件存在,则将该文件的内容加载到一个Properties的实例GLOBAL_PROPERTIES里面,如果不存在,将打印信息  hibernate.properties not found;

接下来Hibernate将所有系统环境变量(System.getProperties())也添加到GLOBAL_PROPERTIES里面。如果配置文件hibernate.properties存在,系统还会进一步验证这个文件配置的有效性,对于一些已经不支持的配置参数,系统将打印出警告信息。

默认状态下configure()方法会自动在环境变量(classpath)下面寻找Hibernate配置文件hibernate.cfg.xml,如果该文件不存在,系统会打印如下信息并抛出HibernateException异常: hibernate.cfg.xml not found;如果该文件存在,configure()方法会首先访问<session-factory>,并获取该元素name的属性,如果name的属性非空,将用这个配置的值来覆盖hibernate.properties的hibernate.session_factory_name的配置的值,从这里我们可以看出,hibernate.cfg.xml里面的配置信息可以覆盖hibernate.properties的配置信息。

查看更多...

Tags: 数据库 多个

分类:Hibernate | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 315
09-02
14

org.hibernate.hql.ast.QuerySyntaxException:  Catalogs is not mapped.

原因Catalogs应为Catalog

命名错误。

另外,如果是小写的catalog,Hibernate则不会找到相应的类来进行处理,可推断出HQL查询语句是区分大小写的,要求表名,字段名要与相匹配的类,属性同名,而且要严格保持一致,包括大小写,而SQL语句是不区分大小写的

Tags: mapped

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