`
719100071
  • 浏览: 2783 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

hibernate 对应关系

阅读更多

hibernate中的一对多关系

 

 

 

 

public class Country {

	private int id;
	private String name;
	private Set<Integer> provinceId;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Set<Integer> getProvinceId() {
		return provinceId;
	}
	public void setProvinceId(Set<Integer> provinceId) {
		this.provinceId = provinceId;
	}
}


<hibernate-mapping package="com.xiaonei.model">

    <class name="Country" table="country">
        <id name="id" column="id">
          <generator class="sequence">
             <param name="sequence">SEQ_COUNTRY</param>
          </generator>
        </id>
        <property name="name" />
        <set name="provinceId">
          <key>
            <column name="COUNTRYID"></column>
          </key>
          <one-to-many class="com.xiaonei.model.Province"/>
        </set>
    </class>
</hibernate-mapping>
 
public class Province {
	 private int  id;
	 private String name;
	 private int countryId;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getCountryId() {
		return countryId;
	}
	public void setCountryId(int countryId) {
		this.countryId = countryId;
	}
}


<hibernate-mapping package="com.xiaonei.model">

    <class name="Province" table="province">
        <id name="id" column="id">
          <generator class="sequence">
             <param name="sequence">SEQ_PROVINCE</param>
          </generator>
        </id>
        <property name="name" />
        <property name="countryId" />
    </class>
</hibernate-mapping>
 

 

一对多的时候,多的一方是主动方,在实体的对应关系中只需要设置一对多中的“一”的一方就可以了,在多的一方就不需要设置了。

   在我刚开始配置的时候,犯了这样一个错误,在多的一方也配置了一对一的关系,结果发生这样的异常

  <hibernate-mapping package="com.xiaonei.model">

   
    <class name="Province" table="province">
        <id name="id" column="id">
          <generator class="sequence">
             <param name="sequence">SEQ_PROVINCE</param>
          </generator>
        </id>
        <property name="name" />
        <property name="countryId" />
        <one-to-one name="countryId"    class="com.xiaonei.model.Country"> </one-to-one>
    </class>
</hibernate-mapping>
发生了这样的异常:
严重: IllegalArgumentException in class: com.xiaonei.model.Province, setter method of property: countryId
2012-9-1 21:57:01 org.hibernate.property.BasicPropertyAccessor$BasicSetter set
严重: expected type: int, actual value: com.xiaonei.model.Country
Exception in thread "main" org.hibernate.PropertyAccessException:
Caused by: java.lang.IllegalArgumentException: argument type mismatch
分享到:
评论

相关推荐

    hibernate对应关系详解

    在Java世界中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,而无需关心底层SQL语句。本文将深入探讨Hibernate中的九种对象关系映射策略,并结合数据库表结构...

    hibernate的对应关系

    在Hibernate框架中,一对一(One-to-One)映射是一种常见的对象关系映射方式,它表示两个实体类之间存在一个唯一的对应关系。例如,一个用户只有一个身份证,或者一辆车只有一个车牌。下面我们将详细讨论如何在...

    hibernate对应关系的配置文件,

    导入直接提示,不怕再为写错而发愁了,主外键关联以做好

    hibernate对应的jar包

    这个"hibernate对应的jar包"很可能包含了Hibernate框架运行所需的库文件。 在Java应用程序中使用Hibernate,通常需要以下核心的jar包: 1. **hibernate-core.jar**:这是Hibernate的核心库,包含了ORM的主要功能,...

    Hibernate对象对应关系总结

    本文主要介绍了对象之间的对应关系,包含对象之间一对一,一对多双向,多对多的关系,另外简单介绍了二级缓存和分页

    Hibernate 配置跟数据库字段的对应关系

    本文将深入探讨如何在Hibernate配置中设置与数据库字段的对应关系,以及相关的Mysql数据库数据类型。 首先,我们需要理解Hibernate的核心配置文件`hibernate.cfg.xml`,在这个文件中,我们定义了数据源、持久化类...

    hibernate中的对象关系模型

    这种关系意味着两个实体之间存在唯一的对应关系,例如一个人可能只有一个护照。在Hibernate中,可以通过`@OneToOne`注解来建立一对一的映射。 4. **一对多(OneToMany)**: 一个实体可以对应多个其他实体,如一...

    Hibernate 关联关系解除

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库。本文将深入探讨Hibernate中的关联关系解除,包括一对多、多对一、一对一以及多对多关系的解除,...

    Hibernate关联关系练习【全】

    一对一(OneToOne)关联是当两个实体之间存在唯一对应关系时使用,比如一个用户只能有一个账号。在Hibernate中,这可以通过@OneToOne注解实现,并可以通过optional参数设置是否允许为空。 一对多(OneToMany)关系...

    Hibernate对象关系详解

    **Hibernate对象关系详解** 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,使得开发者可以方便地在Java对象与数据库表之间进行数据操作。本篇将深入探讨Hibernate中的对象关系映射,包括一对一...

    hibernate对象关系映射实例

    “对应关系有一对一,多对一,多对多”则提示我们将深入学习这三种常见的数据库关联关系在Hibernate中的实现方式。 **Hibernate ORM详解** Hibernate是Java平台上的一个开源ORM框架,它通过提供数据持久化服务,...

    hibernate关联关系映射

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作转换为面向对象的方式,从而简化了数据访问层的编程。"hibernate关联关系映射"是Hibernate的核心概念之一,它定义了如何...

    hibernate的关系映射

    **标题:“Hibernate的关系映射”** 在Java编程领域,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,将Java对象与数据库表之间的交互转化为简单的API调用。关系映射是Hibernate的核心特性之...

    Hibernate映射关系配置:XML方式和注解方式

    在Hibernate中,ORM允许开发者用面向对象的方式操作数据库,通过映射Java类到数据库表,对象的属性对应表的字段,对象的关系对应表间的关联。这种映射有两种主要的实现方式:XML配置和注解配置。 **XML方式** 1. *...

    hibernate映射继承关系(每个类都对应一张表)

    Hibernate,作为Java中广泛使用的对象关系映射(ORM)框架,提供了多种方式来处理继承关系的映射,其中一种就是"每个类都对应一张表"的策略。本文将深入探讨这种映射方式,以及如何在Hibernate中实现它。 首先,...

    Hibernate和java中的对应数据类型

    下面我们将详细探讨Java、Hibernate以及SQL之间的数据类型对应关系。 1. **基本数值类型**: - `byte` 和 `java.lang.Byte` 对应于 SQL 的 `TINYINT` - `short` 和 `java.lang.Short` 对应于 SQL 的 `SMALLINT` ...

    实体类对应关系处理hibernate

    自己根据课本总结的使用hibernate时,实体类间映射文件即*.hbm.xml文件的写法。如果你正在学习hibernate,保证会对你有所帮助。

    Hibernate关系映射

    **标题:“Hibernate关系映射”** 在Java世界中,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者将数据库操作转化为面向对象的方式,极大地简化了数据持久化的复杂性。"多对一"关系映射是Hibernate...

    hibernate映射关系讲解

    这种关系表示两个实体类之间存在唯一对应的关系,例如,一个 `Customer` 类对应一个 `IdCard` 类。在数据库中,通常有一个共享的主键来标识这种关系。 一对一主键关联的映射配置如下: 对于 `Customer` 类,其映射...

    hibernate 映射关系学习入门 多对多实体映射

    在关系数据库中,多对多关系是指两个表之间存在多个对应关系。例如,学生可以选修多门课程,而课程也可以被多名学生选修。在Hibernate中,多对多关系通过中间表(也称为联接表或关联表)来实现,这个表包含来自两个...

Global site tag (gtag.js) - Google Analytics