- 浏览: 575770 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- webservice (3)
- oracle (37)
- sqlserver (8)
- j2ee (56)
- linux (7)
- javaweb (47)
- office (1)
- struts (23)
- hibernate (11)
- spring (29)
- 网络 (2)
- tomcat (13)
- tongweb (0)
- weblogic (0)
- powerdesiginer (3)
- svn (3)
- js (20)
- ie (2)
- 编译 (3)
- css (2)
- 操作系统 (5)
- Android (41)
- jbpm4.3 (1)
- fckeditor (3)
- 操作excel (2)
- db2常用命令 (1)
- ibatis (5)
- mysql (16)
- 表达式语言 (1)
- java方式调用存储过程 (1)
- ca (1)
- linux客户端 (1)
- 电子数码 (1)
- 行业应用 (12)
- 开发工具 (4)
- 面试 (1)
- 计算机原理 (1)
- NOSQL (5)
- 虚拟机 (1)
- nginx (0)
- velocity (2)
- jndi (1)
- spring mvc (39)
- springmvc (32)
- 安全 (5)
- htmleditor (6)
- iphone4 (1)
- html (4)
- jstl (2)
- ckeditor (5)
- 连接池 (1)
- jquery (6)
- 分页 (1)
- 技术研发规则 (1)
- javamail (1)
- maven (2)
- upload (1)
- log (1)
- 测试 (10)
- spring roo (1)
- 版本控制 (2)
- find bugs (0)
- jsf (0)
- springroo (0)
- 小道理 (1)
- 小道理,技术标准 (1)
- jsf (0)
- bitbao (2)
- redmine (3)
- 团队意识 (1)
- mybatis (2)
- jquery mobile (1)
- flexpaper (0)
- json (4)
- URLRewriteFilte (1)
- html5 (1)
- 都乐保活动 (0)
- openfire (0)
- TreeMap (1)
- build (0)
- javaweb,tag (0)
- algorithm (1)
- tag (2)
- 扯淡 (0)
- mac (2)
- 叶一火(老一) (1)
- 游玩 (1)
- 编码 (1)
- 上线部署 (0)
- 研发管理 (0)
- thumbnailator (2)
- 旅游 (0)
- bingweibo (1)
- 杂谈 (4)
- ktv (1)
- weibo (1)
- 爱情 (2)
- 饮食 (1)
- MediaWiki (1)
- git (1)
- 版本库 (1)
- servlet (1)
- 感悟 (1)
- 人生 (1)
- highcharts (1)
- poi (0)
- websphere (0)
- php (1)
最新评论
-
woshixushigang:
good
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
nathanleewei:
org.springframework.jdbc.core.B ...
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
浪禾木:
请问是ckeditor\contents.css吗?改过以后 ...
ckeditor自动换行问题 -
simusuishi:
刚哥威武!
ckeditor取值赋值问题 -
a455642158:
收割完毕……
Android开源项目源码下载(不断更新中)
目前负责中行风险管理系统的数据核对加工模块,业务以及逻辑都已经梳理好了,但是实施的时候遇到了点问题,hibernate注解配置问题。闲话不多说直接上正确的配置:
package com.ibm.banking.irmp.dataimport; import java.io.Serializable; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.Table; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.hibernate.annotations.NamedQueries; import org.hibernate.annotations.NamedQuery; import com.ibm.banking.framework.dto.BaseVO; @Entity @Table(name = "RI_NT_REGULAR_DEF") @NamedQueries({ @NamedQuery(name = "RegularTable.getAll", query = "select regularData from RegularData regularData order by regularData.id", readOnly = true, cacheable = true, cacheRegion = "RefBean") }) @Cache(usage = CacheConcurrencyStrategy.READ_ONLY, region = "RefBean") public class RegularData implements BaseVO, Serializable { /** * */ private static final long serialVersionUID = 5395568085328896385L; /** * @author xushigang */ private Long id; private String tableName; private List<RegularColMapping> mapping; public RegularData() { } public RegularData(Long tableId) { super(); this.id = tableId; } @Id @GeneratedValue public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTableName() { return tableName; } public void setTableName(String tableName) { this.tableName = tableName; } @OneToMany(cascade=CascadeType.ALL, orphanRemoval=true) @JoinColumn(name="table_id") public List<RegularColMapping> getMapping() { return mapping; } public void setMapping(List<RegularColMapping> mapping) { this.mapping = mapping; } }
package com.ibm.banking.irmp.dataimport; import java.io.Serializable; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import com.ibm.banking.framework.dto.BaseVO; @Entity @Table(name = "RI_NT_REGULAR_COL") @Cache(usage = CacheConcurrencyStrategy.READ_ONLY, region = "RefBean") public class RegularColMapping implements BaseVO, Serializable { /** * @author xushigang */ private static final long serialVersionUID = 1L; private Long id; private String regularName; private String description; private String regularType; private String columnName; private String sql; private String tag; private RegularData regularData; public RegularColMapping() {} public RegularColMapping(String columnName) { super(); this.columnName = columnName; } @Id @GeneratedValue public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getRegularName() { return regularName; } public void setRegularName(String regularName) { this.regularName = regularName; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getRegularType() { return regularType; } public void setRegularType(String regularType) { this.regularType = regularType; } public String getColumnName() { return columnName; } public void setColumnName(String columnName) { this.columnName = columnName; } public String getSql() { return sql; } public void setSql(String sql) { this.sql = sql; } public String getTag() { return tag; } public void setTag(String tag) { this.tag = tag; } @ManyToOne(cascade=CascadeType.ALL) @JoinColumn(name="table_id") public RegularData getRegularData() { return regularData; } public void setRegularData(RegularData regularData) { this.regularData = regularData; } }
@Test public void testRegular(){ //List<Object[]> o = session.createQuery(sql.toString()).list(); //StringBuffer sb = new StringBuffer(); //sb.append(Restrictions.in("tableId", new String[]{"1","2","3"})); //sb.append(Restrictions.ilike("mapping.regularName","aa", MatchMode.ANYWHERE)); //System.out.println(sb.toString()); //System.out.println(o.get(0)[0]); //System.out.println(o.get(0)[1]); //session.enableFilter("a"); Session session= dao.getSession(); //List<RegularData> rd = session.createQuery("from RegularData rd").list(); List<RegularColMapping> mapping = new ArrayList<RegularColMapping>(); RegularData tf = new RegularData(); tf.setTableName("RI_NT_SYS_FUNC"); RegularColMapping rc = new RegularColMapping(); rc.setColumnName("column_name"); rc.setSql("sql"); //rc.setRegularData(tf); mapping.add(rc); RegularColMapping rc1 = new RegularColMapping(); rc1.setColumnName("column_name"); rc1.setSql("sql"); //rc1.setRegularData(tf); mapping.add(rc1); tf.setMapping(mapping); session.save(tf); }
以上配置是正确的,多的一端会自动生成table_id 并且会自动插入数值。
按照常规的配置:
@OneToMany(cascade=CascadeType.ALL, orphanRemoval=true,mappedBy="regularData") public List<RegularColMapping> getMapping() { return mapping; }
这样的话table_id就会插入 null 需要手工 关联!!!
测试结果如下:
Hibernate: select hibernate_sequence.nextval from dual Hibernate: select hibernate_sequence.nextval from dual Hibernate: select hibernate_sequence.nextval from dual Hibernate: insert into ri_nt_regular_def (table_name, id) values (?, ?) Hibernate: insert into ri_nt_regular_col (column_name, description, table_id, regular_name, regular_type, sql, tag, id) values (?, ?, ?, ?, ?, ?, ?, ?) Hibernate: insert into ri_nt_regular_col (column_name, description, table_id, regular_name, regular_type, sql, tag, id) values (?, ?, ?, ?, ?, ?, ?, ?)
发表评论
-
spring mvc 乐观锁遇到的问题
2013-05-29 17:29 1997乐观锁问题:updateTime @version ... -
hibernate命名查询问题
2013-01-30 16:38 1314hibernate 注解 @OneToOne(fetc ... -
hibernate [Null value was assigned to a property of primitive type setter of sco
2012-12-25 19:51 1112今天开发时候 hibernate 查询报错,分析原因如下: ... -
hibernate4 注解配置失误导致生成的表关联关系不对
2012-12-18 19:52 1227最近做ibm 风险管理系统,配置hibernate 注解时候看 ... -
eclipse codestyle和formate
2011-12-26 11:20 1056北京都乐宝软件信息技术公司的代码风格 -
Common-logging 与 Log4j的结合使用
2011-12-25 15:58 1203转自:http://hi.baidu.com/suofang/ ... -
ssh整合(转)
2011-09-06 14:50 1268终于,终于将SSH整合成 ... -
hibernate一对多关系采用外键映射时使用inverse的几种情况
2011-06-20 09:05 876对hibernate关系的维护比较头疼,遂总结下做个备份。 ... -
hibernate 一对多one-to-many 单向 and 双向(many-to-one),inverse(反转)
2011-06-16 09:17 2213hibernate 一对多 单向 classes----&g ... -
mappedBy
2011-06-15 14:42 1713对于mappedBy的理解: a) 只有OneToOne, ...
相关推荐
描述部分为空,但我们可以根据标题推测,这篇博客可能详细解释了如何在Hibernate中配置和管理这种一对多双向关联,包括XML配置、注解方式,以及如何在代码中进行操作和查询。 **Hibernate ORM简介** Hibernate是一...
本主题聚焦于“Hibernate双向一对一关联映射”的注解实现,这是一种高级的数据库设计模式,用于处理两个实体之间一对一的关系。 在Hibernate中,一对一关联映射分为单向和双向。单向一对一映射通常涉及一个实体持有...
在Java的持久化框架Hibernate中,双向一对多关联映射是一种常见的关系映射方式,它模拟了数据库中的外键关联,使得一个实体可以拥有多个另一个实体的实例。在这个注解版的实现中,我们将深入探讨如何使用Hibernate的...
“Hibernate 一对多,多对一,一对多双向关联”是指在Java持久化框架Hibernate中,实体间常见的三种关联关系。在数据库设计中,这种关联关系是常见的,例如一个用户可以有多个订单(一对多),一个订单对应一个用户...
本篇文章将深入探讨Hibernate中注解的一对多、多对多和一对一关系映射。 ### 一对多关系 在现实生活中,例如一个班级有一个班主任,而班主任可以管理多个学生,这就是典型的“一对多”关系。在Hibernate中,我们...
本文将深入探讨如何使用Hibernate注解实现基于外键的一对多双向关联。我们将通过具体实例来解析这个主题,并结合源码分析其工作原理。 首先,我们要明白一对多关联意味着一个实体可以拥有多个关联的实体。在数据库...
"hibernate_many2many_2"这个文件名可能是指一个关于Hibernate多对多关联的示例或教程的第二部分,可能包含配置文件、Java实体类、映射文件以及相关的测试代码。 **详细知识点:** 1. **实体类定义**:在Hibernate...
在这个“Hibernate一对多双向自身关联demo代码”中,我们将深入理解如何实现一个实体类与其自身进行一对多的双向关联。这种关联在实际应用中常见于例如用户的朋友关系、员工的上下级关系等场景。 首先,让我们了解...
双向一对一关联的好处在于简化了代码,提高了可读性和可维护性。开发人员可以从任一侧直接获取关联的对象,无需额外的查询操作。然而,需要注意的是,由于这种关联是双向的,所以在处理关联关系时,要特别注意同步两...
Hibernate4.0注解配置详解,Hibernate4.0注解配置详解,Hibernate4.0注解配置详解
总结一下,Hibernate的一对多关联映射通过注解方式定义了对象间的关联关系,使得我们在编程时能够以面向对象的方式操作数据,而底层数据库的操作则由Hibernate自动完成。这种方式大大提高了开发效率,同时也降低了...
在实际应用中,确保在两个实体类间的一对一关联正确无误非常重要。在创建和更新关联时,应避免循环引用和数据不一致的问题。在保存或更新对象时,需确保在双方都进行了正确的设置。 8. **性能考虑**: 一对一双向...
虽然描述部分为空,但根据标题,我们可以推断这篇文章可能详细介绍了如何在Hibernate中设置和管理一对多双向关联,包括配置XML映射文件、注解或者使用Java配置,以及如何在代码中处理这种关联关系。 **标签解析:**...
在Hibernate中,可以通过`@ManyToMany`注解定义多对多关系,并使用`@JoinTable`定义连接表。例如,Student实体和Course实体的多对多关系: ```java @Entity public class Student { @ManyToMany @JoinTable...
在实际的项目开发中,我们经常遇到各种各样的关联关系,比如一对一、一对多、多对一、多对多等。本文将详细讲解“Hibernate Annotation 中的共享主键一对一双向关联”。 首先,我们需要理解什么是共享主键(Shared ...
hibernate关联映射注解多对多单向关联、
在Hibernate中,一对一关联可以通过配置XML映射文件或使用注解来实现。这里我们将使用注解方式进行说明。首先,我们需要在两个实体类中分别定义对应的属性,并使用`@OneToOne`注解来指定关联关系。 1. 实体类A: ``...