本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7579046
建立时间:2006年5月29日




[Hibernate]UserType实例——User的Email列表
软件技术

lhwork 发表于 2007/2/2 17:25:56

1.实现UserType接口的EMailList自定义类型 import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;
import java.util.List; import org.apache.commons.lang.StringUtils; import net.sf.hibernate.Hibernate;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.UserType;
import net.sf.hibernate.hql.Parser; /**
 * @author hy-he
 *
 */<


阅读全文(3336) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]Hibernate的自定义数据类型实现接口之一——UserType祥解
软件技术

lhwork 发表于 2007/2/2 17:25:29

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import net.sf.hibernate.HibernateException; /**
 * @author hy-he
 *
 */
public interface UserType {
 /**
  * 返回UserType所映射字段的SQL类型(java.sql.Types)
  * 返回类型为int[],其中包含了映射个字段的SQL类型代码
  * (UserType可以映射到一个或者多个字段)
  * @return
  */
 public int[]sqlTypes();
 /**
  * UserType.nullSafeGet()所返


阅读全文(4661) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]一个简单的复合主键的做关联类的例子
软件技术

lhwork 发表于 2007/2/2 16:09:24

场景是这样的: 用户类User,物品类Goods,每次记录用户使用物品的情况,情况包括谁在什么时间借了什么物品。其中有一个约束条件就是用户只能对同一物品使用一次。使用记录类为Record类。我们可以看出User对Record是1:n多的关系,Record对Goods是n:1的关系,而User和Goods之间没有之间的关系。 RecordId类是复合主键类,分别以n:1关联User类,n:1关联Goods类。RecordId类需要实现equals方法,需要实现Serializable。而Record类用RecordId来做主键。 类定义如下: java代码
/*
* Created on 2004-10-20
*
*/

阅读全文(8187) | 回复(3) | 编辑 | 精华 | 删除
 


[Hibernate]use AOP to simplify hibernateTemplate (Hibernate3)
软件技术

lhwork 发表于 2007/1/23 12:08:54

Spring ORM 替 Hibernate 的 API (Session and Query) 做了一番修整,也就是 HibernateTemplate ,它最主要的目的是 resource 控管及 exception 的轉換。有了這個 persistence layer 的 code 就可以大量的減少並且降低出錯的機會。然而這個 API 卻抹剎了 Hibernate API 的簡單易用優點,舉例來說,如果藉由 hibernateTemplate 控制 Hibernate Session (ex. Criteria),唯一的做法就是寫很難看的 Callback:

public MyData findByNo(final String no) {
final String hql = " select data from MyData data "
+ " where data.no = :no ";

HibernateCallback hc = new HibernateCallback() {
publi

阅读全文(4036) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]Hibernate 学习小结
软件技术

lhwork 发表于 2007/1/22 16:48:45

一、PO的数据类型设置
int 还是Integer Integer 允许为 null
Hibernate 既可以访问Field也可以访问Property,访问Property是只是调用getXXX()、setXXX()方法,因此在from Customer where c.name=’Tom’ HQL中,name属性不需要存在,只要getName()存在就可以了。 二、Hibernate映射 1、映射复合主键
代码 主键类   Public class CustomerId i

阅读全文(6363) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]Using Lifecycles and Interceptors to update Lucene searches
软件技术

lhwork 发表于 2007/1/22 14:52:33

Everybody but your boss understands that a relational database isn't "searchable" in the usual sense - you have to explicitly identify keywords, maintain search tables, etc. Fortunately it's easy to do incremental updates of Lucene (http://jakarta.apache.org/lucene/docs/index.html) indexes via the Hibernate Lifecycle

阅读全文(2842) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]手动构建Hibernate Annotations Lucene的索引
软件技术

lhwork 发表于 2007/1/22 14:35:27

在使用Hibernate的Lucene的时候,是通过事件监听器的方式来更新索引的。但是通常情况下,尤其是测试的时候,通过其他方式插入数据库,比如通过DbUnit。这个时候就需要同步的手动创建索引,我根据Hibernate Lucene的源代码,自己写了一个简单的程序。 原理很简单:先删除所有的索引,然后再添加。 我是对User这个实体进行索引的。 private static void remove(DocumentBuilder builder, Serializable id) {
  Term term = builder.getTerm( id );
  try {
   IndexReader reader = IndexReader.open( builder.getFile() );
   reader.delete( term );
   reader.clo

阅读全文(5278) | 回复(2) | 编辑 | 精华 | 删除
 


[Hibernate]Hibernate Annotations Lucene Integration的使用
软件技术

lhwork 发表于 2007/1/22 14:32:19

在RDBMS里面做搜索是一件困难的事情。现在的需求是需要对用户的资料进行搜索。用户的资料由多个域组成,其中包含用户的爱好,工作经验等。这些域都是文本,包含大量的信息。 对用户这个实体使用标注@Indexed(index = "users")来指定本实体需要被索引,索引存放的文件夹是users,可以在Hibernate配置文件中使用hibernate.lucene.index_dir来指定默认的索引目录。 Lucene索引的4种类型,分别是Keyword,Text,Unstored,Unindexed。 为Hibernate添加监听器,这样当实体更新之后,索引也会自动更新。 <!-- 插入Lucene事件监听器使得数据库更新时可以自动更新索引 -->
  <event type="post-commit-update">
   <listener class="org.hibernate.lucene.event.LuceneE

阅读全文(4320) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]Hibernate中双向关联加载排序的解决方案
软件技术

lhwork 发表于 2007/1/20 10:58:47

问题:Hibernate的<many-to-many>双向关联中,一方加载另一方时,怎么样达到按自定义规则排序的目的呢?

实例:角色和菜单是多对多的关系,为角色分配菜单后,加载菜单时,我需要按照菜单的ID来排序显示。

解决办法: 1. 通过在hbm配置文件中配置解决,需要自定义比较器。   1) 在多对多的主控端指定<

阅读全文(2962) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]hibernate集合映射inverse和cascade详解
软件技术

lhwork 发表于 2007/1/19 11:53:56

4. hibernate如何根据pojo来更新数据库

4.0 在commit/flush之前,hibernate不会对pojo对象作神秘的处理。
4.0.1 在select查询出pojo时,hibernate根据“字段--属性”的对应关系,用字段的值填充pojo的属性;
然后根据“关系标记”生成sql语句从relationTable中查询出满足条件的relationPojo,并把这些relatinPojo
放到“关系属性”中。这个过程是机械的。

4.0.2 在pojo对象被查出来后,到commit(或flush)之前,它将是一个普通的java对象,hibernate不会做额外的手脚。
比如,不会限制你设置一个属性的值为null或其它任何值
在集合类Set的add(object)操作时, 不会改变object的值,不会检查参数object是否是一个pojo对象
设置mainPojo的一个“桥属性”的值,不会自动设置relationPojo的对应的“桥属性”的值。
执行session.delete(poj

阅读全文(3654) | 回复(0) | 编辑 | 精华 | 删除
 


« 1 2 3 4 5 6 7 8 9 10 »



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.125 second(s), page refreshed 144771191 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号