| 2011/12/27 | J2EE | 被围观 11,644 views+
这个项目以Maven的形式发行,所以你可以以Mave依赖的方式下载这个框架。另外,这些JAR文件也可以从Maven仓库中下载。 1、介绍: Hibernate Generic DAO框架可以和原始的Hibernate框架一起使用,也可以和Hibernate JPA实现一起使用。当然,理论上,它也可以和其他的JPA实现如OpenJPA或TopLink通过一些额外的配置一起使用。 2、安装: 2.1、通过Maven下载安装: Hibernate Generic DAO框架可以从Maven中央仓库获取。只需要添加他的依赖到pom.xml中即可。 如果你先使用原始的Hibernate,而不是JPA,你可以在pom.xml中添加如下的依赖: <dependency> <groupId>com.goo...
| 2011/10/2 | J2EE | 被围观 7,704 views+
在多对多或其他关联映射中,如果只是希望更新关联关系,而不进行级联保存。如下,PrivilegeGroup和SystemPrivilege是多对多双向关联关系,通过new构造一个数据库中已有的SystemPrivilege然后和PrivilegeGroup设置关系,进行保存: PrivilegeGroup group = new PrivilegeGroup(); group.setName(name); SystemPrivilege systemPrivilege = new SystemPrivilege(id); group.getPrivileges().add(systemPrivilege); privilegeGroupService.save(group); 接着提示如下错误: Caused by: java.sql.BatchUpdateException: Duplicate entry 'department-view' for key 1 原因是,虽然Sy...
| 2011/10/2 | J2EE | 被围观 17,042 views+
Caused by: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save() 因为ID设置为了手动设置: <id name="groupid" column="group_id" type="string" length="36"> <generator class="assigned"></generator> </id> 而在保存时没有设置ID: privilegeGroupService.save(group); 导致出现这个错误。 在保存时可以手动设置个UUID即可: public void save(PrivilegeGroup entity) { entity.setGroupid(UUID.randomUUID().toString()); super.save(entity); }
| 2011/9/30 | J2EE | 被围观 8,649 views+
在多对多或者其他的关联映射中,当需要将一个复合主键作为外键时,需要对这个外键做特殊的配置,如下面这个例子: SystemPrivilege和SystemPrivilegePK类详细编码参考: Hibernate复合主键的映射方法 PrivilegeGroup类: public class PrivilegeGroup { private String groupid; private String name; private Set<SystemPrivilege> privileges = new HashSet<SystemPrivilege>(); public PrivilegeGroup(){} public PrivilegeGroup(String groupid) { this.groupid = groupid; } public String getGroupid() { return groupid; } public void setGr...
| 2011/9/30 | J2EE | 被围观 4,850 views+
在项目中需要使用到复合主键时,通常是将主键相关的字段封装到一个单独的类中,这个类必须实现: ① 序列化接口 ② 覆盖equals和hashcode方法 例如下面这个例子: 主键类SystemPrivilegePK: public class SystemPrivilegePK implements Serializable{ private String module; private String privilege; public SystemPrivilegePK(){} public SystemPrivilegePK(String module, String privilege) { this.module = module; this.privilege = privilege; } public String getModule() { return module; } public void setModule(String module) { this.module = m...
| 2011/9/29 | J2EE | 被围观 9,653 views+
Hibernate多对多关联映射主要是通过一张中间表进行设置,把两个表的标识记录项添加到中间表中进行关联,如下图所示: 系统权限类: public class SystemPrivilege { private String id; private String name; private Set<PrivilegeGroup> groups = new HashSet<PrivilegeGroup>(); public Set<PrivilegeGroup> getGroups() { return groups; } public void setGroups(Set<PrivilegeGroup> groups) { this.groups = groups; } public String getId() { return id; } public void setId(String id) { this.id = id; } publi...
| 2011/9/21 | J2EE | 被围观 7,953 views+
template.executeFind(new HibernateCallback() {…}); 捕获这里的异常提示空指针,可能的情况就是没有注入sessionFactory。如果HibernateTemplate是由Spring注入的,查看配置文件有没有注入: <bean id="departmentService" class="com.itzhai.service.privilege.impl.DepartmentServiceBean"> <constructor-arg> <ref bean="hibernateTemplate" /> </constructor-arg> </bean> 这里使用了构造函数注入,查看源文件,发现构造函数的参数忘记使用了: public DepartmentServiceBean(HibernateTemplate hibernateTemplate){ super(); } ...
| 2011/9/4 | C++ | 被围观 7,743 views+
可以认为Hibernate的一对一唯一外键关联映射是多对一的特殊情况(即是在many-to-one标签中设置:unique=true)。 下面说明单向一对一唯一外键关联映射的配置方法: User类: public class User implements Serializable{ private static final long serialVersionUID = 8394979715028899027L; private String username; private String password; private ContactInfo contactInfo; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return passw...
| 2011/7/31 | J2EE | 被围观 19,241 views+
10470 [http-8080-1] ERROR org.hibernate.LazyInitializationException - could not initialize proxy - no Session org.hibernate.LazyInitializationException: could not initialize proxy - no Session 这个是hibernate的延迟加载异常,为了不产生该异常,有如下解决方法: 1、在相应的映射文件里禁止该类的延迟加载:设置lazy=false 2、在session关闭之前取出需要的属性 3、使用openSessionInView <filter> <filter-name>openSessionInView</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter...
| 2011/7/23 | J2EE | 被围观 11,938 views+
配置Hibernate环境 1、 把Hibernate的相关jar包复制到lib目录下: ① HIBERNATE_HOME/lib 下的相关的依赖的第三方包 ② HIBERNATE_HOME/hibernate3.jar Hibernate的核心实现 ③ 引入入相关的JDBC驱动 2、 在src目录下创建相关的配置文件:hibernate.cfg.xml 可以从以下目录中拷贝过来修改: HIBERNATE_HOME \etc\ hibernate.properties 旧版本的Hibernate实用的核心配置文件,这个文件列举了相关的Hibernate配置,在配置文件时可以参考该文件。 HIBERNATE_HOME \etc\ hibernate.cfg.xml 如果存在这个文件则会覆盖上面的properties文件 HIBERNATE_HOME\hibernate-3.2\etc 日志记录文...
随机文章 本月热门 热评
1 ExtJS拖放技术DragSource拖动到指定区域DDTarget 2011/4/13
2 JavaScript设计模式笔记 – 观察者模式 命令模式 2012/12/27
3 Java基础笔记 – 面向对象三个特征 继承、封装、多态及编程细节提示 2011/10/25
4 为交换机进行端口安全的配置 2011/5/20
5 打印网页内容的Javascript代码实现 2011/9/17
6 肖申克的救赎:救赎心中那份本该具有的追求信念的勇气 2011/8/11
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.