`

双向一对多关联使用List出现问题

XML 
阅读更多
如附件图示:为账户(Account)和订单(Order)之间建立双向一对多关联关系。以前用Set在Account中来保存所有的Order。今天改成用List后,出现一个问题:得到Account实例后,调用getOrders()得到所有的订单,再访问订单实例的属性时报空指针问题(以前用Set时没有问题),请各位大大帮忙。
Account.hbm.xml
 <class name="org.qiujy.domain.Account" table="account">
    <id name="id" column="id" type="java.lang.Long">
        <generator class="native"/></id>
    <property name="userName" column="userName" type="string"/>
    <list name="orders" table="orders" cascade="save-update" inverse="true">
        <key column="accountId" not-null="true"/>
        <list-index column="orderNumber" />
        <one-to-many class="org.qiujy.domain.Order"/>
    </list>
 </class>

Order.hbm.xml
 <class name="org.qiujy.domain.Order" table="orders">
    <id name="id" column="id" type="long">
        <generator class="native"/></id>
    <property name="orderNumber" column="orderNumber" type="string"/>
    <property name="createTime" column="createTime" type="timestamp"/>
    <many-to-one name="account" 
    	column="accountId"
     	class="org.qiujy.domain.Account" 
        	not-null="true"/>
 </class>

测试(数据库中已经有测试数据了)
Account account = (Account) session.load(Account.class, new Long(1));
System.out.println("============"+account.getUserName());

List list = account.getOrders();
int size = list == null ? 0 : list.size();
for(int i = 0; i < size; i++){
	Order ord = (Order)list.get(i);
	//报空指针异常
	System.out.println( "No " + ord.getOrderNumber());
}

  • 大小: 28.4 KB
分享到:
评论

相关推荐

    hibernate一对多,多对一,一对多双向关联

    本主题将主要聚焦在一对一和一对多关联。 2. **关联的方向性:** 关联可以是单向或双向的。单向关联只能从一个实体访问另一个,而双向关联允许两个实体之间互相访问。 3. **@OneToOne, @OneToMany, @ManyToOne ...

    Hibernate ORM - 一对多双向关联关系

    **一对多关联** 在数据库设计中,一对多关系意味着一个表的记录可以与另一个表的多个记录相关联。在Hibernate中,这种关系可以通过`@OneToMany`注解实现。例如,User类可能会有如下注解: ```java @Entity public ...

    JPA_2_一对多双向关联关系

    在JPA中,一对多关联关系是常见的实体间关系类型,它表示一个实体可以与多个其他实体相关联。例如,一个学生可以有多个课程,一个部门可以有多名员工。在这个场景中,我们将深入探讨如何在JPA 2中实现一对多双向关联...

    mybatis系列三:一对多双向关联

    在MyBatis中,实现一对多关联有两种方式:集合映射和关联映射。集合映射通常用于一个实体包含一个列表或集合的子实体,而关联映射则允许更复杂的导航结构。在这个系列的第三部分,我们将重点讨论双向关联,这意味着...

    JPA中的一对多双向关联与级联操作

    在Java Persistence API (JPA) 中,一对多关联是一种常见的关系映射,它表示一个实体可以与多个其他实体相关联。这种关联在数据库层面通常通过外键实现,而在JPA中,我们通过注解来配置这种关系。这篇博客将深入探讨...

    Hibernate Annotation 基于外键的一对多双向关联

    首先,我们要明白一对多关联意味着一个实体可以拥有多个关联的实体。在数据库中,这通常通过外键实现,即在一个表中有一个字段指向另一个表的主键。在Java中,我们可以使用`@OneToMany`和`@ManyToOne`注解来建立这种...

    13_jpa多对多双向关联实体定义与注解

    4. **注解细节**:`@JoinColumn`用于单向一对一或一对多关系,而在多对多关系中,通常使用`@JoinTable`来指定中间表的信息,包括表名、连接列等。 5. **操作关联**:在JPA中,可以通过添加或移除对象到集合属性来...

    Hibernate ORM - 多对多双向连接表关联关系

    6. **源码分析**:为了更好地理解这一过程,你可以查看Hibernate源码,了解它如何处理多对多关联的SQL语句生成、中间表的操作以及事务管理。这有助于提高对Hibernate框架的理解。 通过以上步骤,我们可以在...

    Hibernate ORM - 一对多双向连接表关联关系

    2. **一对多关联**:在数据库设计中,一对多关联表示一个表(父表)的记录可以与另一个表(子表)的多个记录相关联。在Hibernate中,这通常通过`@OneToMany`注解来实现。 3. **双向关联**:双向关联意味着两个实体...

    hibernate双向多对多关联映射(XML)

    本知识点将深入探讨Hibernate中的双向多对多关联映射,并通过XML配置文件进行设置。 在关系型数据库中,多对多(Many-to-Many)关系是两个表之间的一种复杂关联,表示一个实体可以与多个其他实体相关联,反之亦然。...

    多对一双向关联关系实现源码

    1. **@ManyToOne**:在多方(例如学生)的实体类中,我们添加`@ManyToOne`注解来指定一对一的关联。例如,在`Student`类中,我们可以这样定义: ```java @Entity public class Student { @Id @GeneratedValue...

    Hibernate双向一对多

    标题"Hibernate双向一对多"指的是Hibernate框架中的一个重要关系映射概念,即在一个实体类中,一个实例可以与多个另一个实体类的实例相关联,而在另一个实体类中,每个实例也可以关联到该实体类的一个实例。...

    hibernate对映射xml的一对多的双向关联详解

    在数据库设计中,一对多关联是指一个实体可以与多个其他实体相关联,比如一个学生可以有多个课程,一个部门可以有多名员工。在Hibernate中,这种关系可以通过XML映射文件来配置。首先,我们需要在两个实体的映射文件...

    SSH一对多(两表双向关联查询)

    SSH一对多(两表双向关联查询)是一种在Java Web开发中常见的数据操作方式,主要涉及到Spring、Struts和Hibernate这三大框架的集成使用。在这个场景下,我们将关注于如何通过Hibernate来实现数据库中的两个表——...

    Hibernate ORM - 一对多双向组合关联关系

    XML配置文件中,一对多关联将在`&lt;set&gt;`或`&lt;list&gt;`元素中声明,而在Java类上,我们将使用`@OneToMany`和`@ManyToOne`注解。 6. **操作关联对象**:在Java代码中,我们可以方便地添加、删除和查询关联的对象。例如,...

    hibernate双向一对多增删查改的例子

    在Java的持久化框架Hibernate中,双向一对多关联是一种常见的数据模型关系,它涉及到两个实体类,一个实体可以有多个另一个实体的实例。本示例将深入探讨如何使用Hibernate进行双向一对多关系的增删查改操作。 首先...

    Hibernate一对多(多对一)双向关联(annotation/xml)

    - **注解配置**:在双向一对多关联中,一方使用`@ManyToOne`,另一方使用`@OneToMany`并设置`mappedBy`属性。对于多对一,一方用`@OneToOne`,另一方用`@OneToOne(mappedBy = "...")`。 - **XML配置**:需要在双方...

    10_JPA详解_JPA中的一对多双向关联与级联操作.zip

    // 使用@OneToMany注解表示一对多关联 @OneToMany(mappedBy = "student") private List&lt;Course&gt; courses; } @Entity public class Course { @Id private Long id; // 在多方使用@ManyToOne注解,定义反向...

    多对多双向关联

    在编程领域,多对多双向关联是一种常见的关系数据库设计概念,尤其在ORM(对象关系映射)框架中,如Hibernate、JPA等。这个概念主要应用于数据模型的设计,旨在反映现实世界中两个实体之间复杂的关系。 标题“多对...

Global site tag (gtag.js) - Google Analytics