Hibernate 的 formula 简单用法

Hibernate 3 之后,formula(公式,Excel 里常见的) 得到了更广泛的应用,不过这里还是简单记录一下它在 <property> 中的应用。

假如我们要映射这么一个类:

package cc.unmi.model;

public class User {
    private int id;
    private String name;
    Private Set<Order> orders = new HashSet<Order>();

    //setter & getter ......
} 阅读全文 >>

类别: Hibernate. 标签: . 阅读(200). 评论(0) »

显示出 Hibernate 查询语句的绑定参数值

在使用 Hibernate 进行数据库操作的时候可以显示出所执行的 SQL 语句,相信用 Hibernate 的兄弟姐妹们都知道怎么设置。就设置 hibernate.show_sql  或者 show_sql 属性为 true 就行,在 hibernate.cfg.xml 或者与 Spring 集成时配置在 Spring 的配置文件中。再就是要让显示的 SQL 语句是格式化的,就配置 hibernate.format_sql 或是 format_sql 为 true,否则总在一行中执行。Hibernate 显示的 SQL 语句好像是通过 System.out.println() 直接输出的。

Hibernate 大部份时候是通过 PreparedStatement 来执行 SQL 语句的,它的好处是可预处理、被缓存,可防止注入。只是这样让 Hibernate 执行的 SQL 语句输出到控制台是带问号的,如: 阅读全文 >>

类别: Hibernate. 标签: , . 阅读(476). 评论(2) »

Hibernate3调用存储过程用法

直接以一个例子在说明,如DB2中有一个简单存储过程 selectAllUsers

CREATE  procedure selectAllUsers
DYNAMIC RESULT SETS 1
BEGIN
      DECLARE temp_cursor1 CURSOR  WITH RETURN TO CLIENT  FOR
      SELECT * FROM  test;
      OPEN temp_cursor1;
END;

映射文件中关于存储过程内容如下 阅读全文 >>

类别: Hibernate. 标签: , . 阅读(104). 评论(0) »

Hibernate 保存对象出现 org.hibernate.NonUniqueObjectException 及解决

Hibernate save 在 session 中已存在相同 OID(主键) 的对象,会出现异常,详细内容如下:

Exception in thread "main" org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.unmi.LoanDetail#1]
 at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:168)
 at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
 at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
 at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
 at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient 阅读全文 >>

类别: Hibernate. 标签: . 阅读(207). 评论(7) »

Hibernate程序使用WAS连接池提交事务时出现 NullPointerException

Hibernate应用程序部署到WebSphere Application Server 5.1上,使用WAS的连接池,程序在处理了比较多的 session.save(object)操作之后,在执行提交事物 trans.commit()之时出现以下异常

 java.lang.NullPointerException
        at oracle.jdbc.dbaccess.DBData.clearItem(DBData.java:431)
        at oracle.jdbc.dbaccess.DBDataSetImpl.clearItem(DBDataSetImpl.java:3528)
        at oracle.jdbc.driver.OraclePreparedStatement.clearParameters(OraclePreparedStatement.java:3401)
        at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.resetStatement(WSJdbcConnection.java:1719) 阅读全文 >>

类别: Hibernate. 标签: , . 阅读(122). 评论(10) »

Hibernate应用程序部署在WebSphere AS 上出现记录死锁的分析与解决

有一个项目,是用Hibernate开发的部署在WebSphere Application Server 5.1下,总是会出现数据库记录被死锁的情况,即使是一个简单的更新动作,都有可能造成。

这个问题,困扰我许久,检查过所有代码,事物一定要提交或者回滚,Session及时释放,怀疑过是否是因为是部署在集群环境,但好像那些措施总于事无补,百思不得其解。

就差没有使用容器提供的事物了。 阅读全文 >>

类别: Hibernate. 标签: , . 阅读(54). 评论(1) »

Hibernate从2升级到3不支持Oracle8外连接(+)的解决办法

最近接手了一个要维护的项目,是用Hibernate2+Oralce8写成的,因为看到Hibernate3页出来这么久了,而且也感觉Hibernate3有它的许多新的特性,如批量删除和更新,新的HQL语法解析器AST。

升级过程大致按照孙卫琴的那篇文章 如何把Hibernate2.1升级到Hibernate3.0?来做,该替换的替换完,该设置的设置完,程序一跑,当程序执行到向下面这种查询的时候(Oracle所特有的外连接查询),报错。

语句为:(描述为类似语句,把项目中的实际表名隐去了) 阅读全文 >>

类别: Hibernate, Oracle. 标签: , . 阅读(52). 评论(2) »

Hibernate如何与Firebird数据库自增字段映射

Firebird 本身是没有自增型字段,但可以通过序列键产生器和触发器共同来实现,步骤如下:

  1. CREATE TABLE my_table (   
  2. my_number integer not null primary key  
  3. )   
  4. CREATE GENERATOR my_generator   
  5. CREATE TRIGGER my_before_trigger FOR my_table   
  6. BEFORE INSERT  
  7. AS  
  8. BEGIN  
  9. IF (NEW.my_number IS NULL)   
  10. THEN NEW.my_number = GEN_ID(my_generator, 1);   
  11. END  

阅读全文 >>

类别: Hibernate. 标签: , . 阅读(31). 评论(0) »

MyEclipse5.1生成映射文件出现Generating Artifacts错误

使用 Eclipse3.2.1+MyEclipse5.1+classes12.jar+Hibernate3

建立了 Hibernate3 的 Project, 使用上面那个 classes12.jar 的驱动,在 MyEclipse 的 DB Browser

连接上数据库,选择表,在上下文菜单中点击 Hibernate Reverse Engnieering, 直接点 Finish 按钮,

生成映射文件是出现出错:
An internal error occurred during "Generating Artifacts" 阅读全文 >>

类别: Hibernate. 标签: , . 阅读(32). 评论(8) »