`
SavageGarden
  • 浏览: 223266 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JPA的OneToMany和ManyToOne

    博客分类:
  • Java
阅读更多
    在appfuse2下写个测试,用到了一对多,看看了资料,开整,commoneclipse插件已经装好,就等把pojo写好以为就OK了,第一次运行mvn compile hibernate3:hbm2ddl,报个什么net错误,一想,哦,mysql用的绿色的,每次还要手动启动服务,然后,还是报错,这次是报一个pojo里的一个属性是未知类型,一想,哦,hibernate.cfg.xml里加载pojo的顺序是不是也要好好写一下呢,不然,先编译“Many”方,“One”方还没有呢,是不是就这样才报错了呢?调整顺序试了试,还是不行,还是未知的属性。
    昨天做电子方面的同学拿我的java书也开始学编程了,照着书上敲最简单的一个程序,输出java的基本数据类型,但是就是输不出来,一会这儿错一会那儿错,五花八门,无所不有,我在忙自己的事随口就说他肯定是没有按照书上的敲,肯定是敲错了,但是问题还是没有解决,因为他一口咬定没有敲错,就是按照书上敲的,后来过去看了下,原来他的按照书上敲是敲了,但是没有敲在main方法里面,正好那书翻了一页,他就敲方法外面,没有方法调用,自然没有输出了。
    我就开始想这个问题,别人就是这样做的,pdf的教程里也是这么写的,为什么就出错了,为什么就报没有这个属性呢?原因一,我写的不对,犯了低级错误;原因二,我理解的不对,写出了错误的代码。检查了几遍,肯定是第二个原因了。再仔细看看书。
@OneToMany(
			fetch = FetchType.LAZY,mappedBy = "company_id")
	public List<Message> getMessages() {
		return messages;
	}

就是报这个company_id是未知属性,按照我的理解,在Message里有
private Company company;

应该是Message拿Company的ID做外键,那么mappedBy="company_id"就理所当然了。但是它却报错了,说这个属性未知,那么,这个里面的值并不是作为取Company的每个字段,应该是取Message的一个属性,那么就应该是
@OneToMany(
			fetch = FetchType.LAZY,mappedBy = "company")
	public List<Message> getMessages() {
		return messages;
	}

因为在Message里定义了
private Company company;

mappedBy的值应该是“Many”需要的“One”的属性,又仔细看了下JPA的文档,果然,原来这么久以来还真的是自己理解错了。
总结下,实践是检验真理的唯一标准。
分享到:
评论

相关推荐

    JPA_OneToMany学习教程

    "JPA_OneToMany"是JPA中的一个关键概念,涉及实体之间的关联关系,特别是在处理一对多关系时。本教程将深入探讨JPA中的OneToMany映射关系,以及如何在实际开发中有效地应用。 1. **OneToMany关系**:在关系数据库中...

    JPA学习总结(三)--JPAOneToMany双向关联

    在本篇《JPA学习总结(三)--JPAOneToMany双向关联》中,我们将深入探讨Java Persistence API (JPA)中的OneToMany关系映射,这是一种在数据库表之间建立一对多关联的方式。JPA作为ORM(对象关系映射)框架,允许我们...

    JPA课程manyToMany OneToMany 等全部测试

    在本课程中,我们将深入探讨JPA中的一些关键关系映射类型,包括`@ManyToMany`、`@OneToMany`等,以及它们的实际应用和测试。 ### `@ManyToMany`关系 在数据库设计中,`ManyToMany`关系表示两个实体之间存在多对多...

    spring jpa操作数据库 级联数据 hibernate

    - "JPA之OneToMany和ManyToOne处理"的MHT文件深入讨论了这两种关联的处理方法。 - "SpringHibernateJPA0300_BoneCP.rar"可能包含了一个使用 BoneCP 作为连接池的Spring JPA与Hibernate项目。 - "School.rar"和...

    jpa-day3-onetomany.zip

    在这个名为"jpa-day3-onetomany.zip"的压缩包中,我们将探讨这种关系的配置、操作和实践。 一对多关系意味着一个实体(如“客户”)可以与多个其他实体(如“联系人”)相关联。在数据库设计中,这通常通过在“联系...

    JPA中文解释,JPA的API

    在JPA中,注解如`@Entity`用于标记实体类,`@Table`指定对应的数据库表,`@Id`定义主键,`@Column`定义字段属性,`@OneToMany`、`@ManyToOne`、`@OneToOne`和`@ManyToMany`处理关联关系等。针对Oracle,可能还会涉及...

    学习hibernate必读,JPA2新特征和JPA2映射的神秘之旅。

    - **关系映射**:`@ManyToOne`,`@OneToMany`,`@OneToOne`,`@ManyToMany`注解用于处理实体间的关系。 - **复合主键**:`@EmbeddedId`和`@IdClass`用于处理复杂的主键结构。 - **继承映射**:支持单表继承...

    JPA教程,包括TOPLink JPA,Hibernate JPA,Open Jpa,jpa批注

    - `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`:定义实体之间的关联关系。 **JPA核心概念** 1. **实体(Entity)**:代表数据库中的表,由`@Entity`批注的Java类表示。 2. **实体管理器...

    jpa学习代码和ppt

    4. **关联(Association)**:JPA支持一对一、一对多、多对一和多对多的关系映射,通过`@OneToOne`、`@OneToMany`、`@ManyToOne`和`@ManyToMany`注解来实现。 5. **继承(Inheritance)**:JPA提供了单表继承、联合...

    JPA大全之经典全集

    常见的批注有`@Entity`(定义实体类)、`@Table`(指定映射的数据库表)、`@Id`(定义主键)、`@GeneratedValue`(自动生成主键)、`@ManyToOne`、`@OneToMany`、`@OneToOne`和`@ManyToMany`(定义关联关系)等。...

    jpa经典文档呀

    8. **关联映射**:JPA支持一对一、一对多、多对一和多对多的关系映射,通过@OneToOne、@OneToMany、@ManyToOne和@ManyToMany注解实现。 9. **懒加载和级联操作**:懒加载可以延迟加载关联的对象,直到真正需要时才...

    JPA讲解视频

    7. **关系映射(Relationship Mapping)**:JPA支持一对一、一对多、多对一和多对多的关系映射,如`@OneToOne`、`@OneToMany`、`@ManyToOne`和`@ManyToMany`。 8. **继承映射(Inheritance Mapping)**:JPA支持单...

    JPA映射关系详解javax JPA JPA映射关系 JPA映射

    在 JPA 中,使用 `@OneToMany` 注解来定义这种关系,并通过 `@JoinColumn` 指定关联字段。 **示例代码:** ```java @OneToMany @JoinColumn(name = "CUST_ID") private Set&lt;Contact&gt; contactList; ``` 这里,`...

    JPA参考学习资料下载(一共包括3本pdf文件)

    第二本,《JPA+批注参考.pdf》,可能会详细阐述JPA的注解使用,如@Table、@Column、@Id、@GeneratedValue、@OneToMany、@ManyToOne、@OneToOne和@ManyToMany等,这些注解是JPA中实现ORM的关键。此书可能会涵盖如何...

    spring-data-JPA帮助文档

    @OneToMany、@ManyToOne、@OneToOne和@ManyToMany等注解用于定义关系映射,支持各种关联关系。 五、事务管理 Spring Data JPA利用Spring的事务管理能力,通过@Transactional注解在方法级别控制事务。这使得开发者...

    传智播客JPA学习笔记.pdf

    在JPA中,一对多关系通过@OneToMany和@ManyToOne注解定义,级联操作如CascadeType.PERSIST、CascadeType.REMOVE允许在操作父对象时自动处理子对象的状态。 **11. JPA中的一对多延迟加载与关系维护(一对多关系:二...

    使用jpa映射关联和继承

    本篇文章将深入探讨如何在JPA中映射关联和实现继承。 **一、JPA关联映射** 1. **一对一(OneToOne)映射**:一个实体对象对应数据库中的一个记录。通过`@OneToOne`注解来实现,可以是单向或双向。`@JoinColumn`...

    Spring Data JPA中文文档[1.4.3].zip

    8. **JPA实体**:学习如何定义实体类,使用`@Entity`, `@Table`, `@Id`, `@GeneratedValue`等注解,以及如何处理关系(如`@OneToOne`, `@OneToMany`, `@ManyToOne`, `@ManyToMany`)。 9. **转换和事件处理**:了解...

    01_传智播客JPA详解_全面阐释和精彩总结JPA

    3. **实体关系映射(Entity Relationships)**:探讨不同类型的数据库关系,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany),以及如何使用注解进行映射。 4. **持久化管理...

    JPA详细文档(JPA 批注参考)

    - `@OneToOne`、`@ManyToOne`、`@OneToMany` 和 `@ManyToMany`:定义不同类型的关联关系。 - `@MapKey` 和 `@OrderBy`:在映射关联集合时提供额外的排序和键控制。 6. **组合和继承批注**: - `@Embeddable`:...

Global site tag (gtag.js) - Google Analytics