Hibernate
Asher
这个作者很懒,什么都没留下…
展开
-
SQL 方言
你应当总是为你的数据库将 hibernate.dialect 属性设置成正确的 org.hibernate.dialect.Dialect 子类。如果你指定一种方言,Hibernate 将为上面列出的一些属性使用合理的默认值,这样你就不用手工指定它们。 RDBMSDialectDB2org.hibernate.dialect.原创 2012-04-19 10:03:01 · 1558 阅读 · 0 评论 -
java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()Z
java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()Z控制台报错信息:java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z at org.hibernate.cfg.AnnotationBinder.原创 2012-05-12 14:19:05 · 1465 阅读 · 0 评论 -
Hibernate乐观锁和悲观锁
Hibernate支持两种锁机制: 即通常所说的“悲观锁(Pessimistic Locking)”和 “乐观锁(OptimisticLocking)”。Hibernate的悲观锁加锁模式有: 1、LockMode.NONE : 无锁机制。 2、LockMode.WRITE :Hibernate在Insert和Update记录的时候会自动获取。 3、LockMod原创 2012-05-05 10:47:49 · 1065 阅读 · 0 评论 -
JPA 注解
第 1 章 创建一个注解项目1.1. 系统需求首先从Hibernate官方网站下载并解压Hibernate Annotations的发布包。这个版本(预览版)要求使用Hibernate 3.2.0.CR2或更高版本。请不要和老版本的Hibernate 3.x混合起来使用。这个版本在Hibernate core原创 2012-05-12 15:11:26 · 5878 阅读 · 0 评论 -
线程绑定(上下文会话)
如果是在web容器中运行hibernate,则在hibernate.cfg.xml中加入这句话:jta如果是在一个单独的需要进行JDBC连接的java application中运行hibernate,则这样设置:org.hibernate.context.ThreadLocalSessionContext或者简写thread public static void main(原创 2012-05-14 12:52:22 · 900 阅读 · 0 评论 -
注解 关联映射
一、一对多 @Id private Integer deptno; @Column(name="dname") private String dname; @Column(name="loc") private String loc; @OneToMany(cascade={CascadeType.ALL},targetEntity=Emp.class) @JoinColumn(原创 2012-05-14 13:24:33 · 977 阅读 · 0 评论 -
Hibernate自定义方言
首先自定义方言:package org.han.entity;import org.hibernate.Hibernate;import org.hibernate.dialect.Oracle10gDialect;import org.hibernate.dialect.function.SQLFunctionTemplate;public class MyDialect原创 2012-05-10 10:16:43 · 4321 阅读 · 0 评论 -
注解 主键生成策略
一、JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是JPA的标准用法, JPA提供四种标准用法,由@GeneratedValue的源代码可以明显看出. @Target({METHOD,FIEL原创 2012-05-13 23:01:18 · 4368 阅读 · 0 评论 -
Hibernate JDBC 连接
通常你希望org.hibernate.SessionFactory 来为你创建和缓存(pool)JDBC 连接。如果你采用这种方式,只需要如下例所示那样,打开一个 org.hibernate.Session:Session session = sessions.openSession(); // open a new Session一旦你需要进行数据访问时,就会从连接池(con原创 2012-04-19 19:04:41 · 847 阅读 · 0 评论 -
关于Oracle10g驱动date类型没有时分秒问题
一般的数据库中,DATE字段仅仅表示日期,不包括日期信息,而Oracle数据库中的DATE数据类型是包括日期、时间的,对于不同的Oracle jdbc驱动版本,对于该问题的处理都有些区别。最近使用 ORACLE 10G,时间字段因需求,设为了DATE类型,发现hibernate用native SQL 查询,显示不了时分秒,原来是JDBC驱动自动把date映射为 java.sql.date,原创 2012-07-03 11:21:50 · 3674 阅读 · 2 评论 -
SQLQuery 查询Oracle char类型返回一个字符问题
在使用Hibernate的原生态SQL对Oracle进行查询时,碰到查询char类型的时候始终返回的是一个字符,产生这个问题的主要原因确实是Hibernate再查询Oracle的时候,将char自动映射成character(varchar的子集)类型,现有以下几种解决方法:1:将你要查询的实体转换成实体Bean,使用HQL查询,这样就不存在字段映射的问题了;2:可以使用Hibern原创 2012-08-18 11:03:20 · 1699 阅读 · 0 评论 -
Class<T> 泛型T简化Dao
package org.han.classt;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import org.han.entity.EntityDao;import org.hibernate.Session;import org.hibernate.cfg.Configurati原创 2012-05-11 23:51:18 · 1494 阅读 · 0 评论 -
Hibernate 调用函数及过程
一、函数第一种方式:获得connection Connection conn = session.connection(); CallableStatement call = conn.prepareCall("{?=call getemp.getempc(?)}"); call.registerOutParameter(1, OracleTypes.CURSOR);// 设原创 2012-05-11 13:34:00 · 6047 阅读 · 0 评论 -
Hibernate基本值类型
内置的 basic mapping types 可以大致地分类为:integer, long, short, float, double, character, byte, boolean, yes_no, true_false这些类型都对应 Java 的原始类型或者其封装类,来符合(特定厂商的)SQL 字段类型。boolean, yes_no 和 true_false 都原创 2012-04-19 22:06:47 · 973 阅读 · 0 评论 -
Hibernate 配置属性
有大量属性能用来控制 Hibernate 在运行期的行为。它们都是可选的,并拥有适当的默认值。警告其中一些属性是"系统级(system-level)的"。系统级属性只能通过java -Dproperty=value 或hibernate.properties 来设置,而不能用上面描述的其他方法来设置。Hibernate 配置属性属原创 2012-04-19 10:23:45 · 734 阅读 · 0 评论 -
主键生成策略
increment策略:获取数据库中最大ID,并在该基础上加1作为新id,可以应用于任何数据库。格式: identity策略:设定表中的ID列为自动增长,可以用于MS SQL Server、MySQL和DB2。格式: sequence策略:使用序列机制生成ID,主要用于Oracle、DB2数据库。格式: 序列名原创 2012-04-19 09:58:09 · 795 阅读 · 0 评论 -
Hibernate集合映射
Hibernate 定义了三种基本类型的集合:值数据集合一对多关联(One-to-many Associations)多对多关联这个分类是区分了不同的表和外键关系类型,但是它没有告诉我们关系模型的所有内容。 要完全理解他们的关系结构和性能特点,我们必须同时考虑“用于 Hibernate 更新或删除集合行数据的主键的结构”。因此得到了如下的原创 2012-05-02 23:02:46 · 1362 阅读 · 0 评论 -
Hibernate list()和iterate()
先执行list()后执行iterate(),结果如下: System.out.println("------------list()方法-----------"); Query q1=session.createQuery(" from Dept"); Listl=q1.list(); for (Dept dept : l) { System.out.println(d原创 2012-05-05 11:40:56 · 1417 阅读 · 0 评论 -
抓取策略(Fetching strategies)
Hibernate3 定义了如下几种抓取策略:连接抓取(Join fetching):Hibernate 通过在 SELECT 语句使用 OUTER JOIN(外连接)来获得对象的关联实例或者关联集合。查询抓取(Select fetching):另外发送一条 SELECT 语句抓取当前对象的关联实体或集合。除非你显式的指定lazy="false" 禁止 延迟原创 2012-05-05 10:29:00 · 730 阅读 · 0 评论 -
HQL
1、属性查询 1.1、单个属性查询 List l=session.createQuery("select e.ename from Emp e").list(); for (String ename : l) { System.out.println(ename);//每条记录都是一个字段对应的数据类型 } 1.2、多个属性查询原创 2012-05-05 23:13:55 · 922 阅读 · 0 评论 -
saveOrUpdate
PK有值update(),无值save()save是返回插入数据的主键的,而saveOrUpdate是voidsave方法更适用与确定了是要插入,而且需要得到插入数据的主键而saveOrUpdate更倾向于不缺定是插入还是更新,而且你不需要得到他的主键另一方面,如果你无法确定你要插入或更新的对象是不是持久态或游离态时。如果你save一个持久态或更新一个游离态,这都是有问题的原创 2012-04-23 15:18:19 · 1542 阅读 · 0 评论 -
Hibernate Blob和Clob
Blob: public static void blobOperate() throws IOException, InterruptedException, SQLException { Session sess = new Configuration().configure("main.xml") .buildSessionFactory().getCurrentSessio原创 2012-05-12 08:59:01 · 706 阅读 · 0 评论 -
HQL查询中文乱码问题
可以在spring配置文件中配置: ${hibernate.dialect} ${hibernate.show_sql} false <!-- false原创 2012-10-19 20:06:24 · 1650 阅读 · 0 评论