在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中的一个关键概念,涉及实体之间的关联关系,特别是在处理一对多关系时。本教程将深入探讨JPA中的OneToMany映射关系,以及如何在实际开发中有效地应用。 1. **OneToMany关系**:在关系数据库中...
在本篇《JPA学习总结(三)--JPAOneToMany双向关联》中,我们将深入探讨Java Persistence API (JPA)中的OneToMany关系映射,这是一种在数据库表之间建立一对多关联的方式。JPA作为ORM(对象关系映射)框架,允许我们...
在本课程中,我们将深入探讨JPA中的一些关键关系映射类型,包括`@ManyToMany`、`@OneToMany`等,以及它们的实际应用和测试。 ### `@ManyToMany`关系 在数据库设计中,`ManyToMany`关系表示两个实体之间存在多对多...
- "JPA之OneToMany和ManyToOne处理"的MHT文件深入讨论了这两种关联的处理方法。 - "SpringHibernateJPA0300_BoneCP.rar"可能包含了一个使用 BoneCP 作为连接池的Spring JPA与Hibernate项目。 - "School.rar"和...
在这个名为"jpa-day3-onetomany.zip"的压缩包中,我们将探讨这种关系的配置、操作和实践。 一对多关系意味着一个实体(如“客户”)可以与多个其他实体(如“联系人”)相关联。在数据库设计中,这通常通过在“联系...
在JPA中,注解如`@Entity`用于标记实体类,`@Table`指定对应的数据库表,`@Id`定义主键,`@Column`定义字段属性,`@OneToMany`、`@ManyToOne`、`@OneToOne`和`@ManyToMany`处理关联关系等。针对Oracle,可能还会涉及...
- **关系映射**:`@ManyToOne`,`@OneToMany`,`@OneToOne`,`@ManyToMany`注解用于处理实体间的关系。 - **复合主键**:`@EmbeddedId`和`@IdClass`用于处理复杂的主键结构。 - **继承映射**:支持单表继承...
- `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`:定义实体之间的关联关系。 **JPA核心概念** 1. **实体(Entity)**:代表数据库中的表,由`@Entity`批注的Java类表示。 2. **实体管理器...
4. **关联(Association)**:JPA支持一对一、一对多、多对一和多对多的关系映射,通过`@OneToOne`、`@OneToMany`、`@ManyToOne`和`@ManyToMany`注解来实现。 5. **继承(Inheritance)**:JPA提供了单表继承、联合...
常见的批注有`@Entity`(定义实体类)、`@Table`(指定映射的数据库表)、`@Id`(定义主键)、`@GeneratedValue`(自动生成主键)、`@ManyToOne`、`@OneToMany`、`@OneToOne`和`@ManyToMany`(定义关联关系)等。...
8. **关联映射**:JPA支持一对一、一对多、多对一和多对多的关系映射,通过@OneToOne、@OneToMany、@ManyToOne和@ManyToMany注解实现。 9. **懒加载和级联操作**:懒加载可以延迟加载关联的对象,直到真正需要时才...
7. **关系映射(Relationship Mapping)**:JPA支持一对一、一对多、多对一和多对多的关系映射,如`@OneToOne`、`@OneToMany`、`@ManyToOne`和`@ManyToMany`。 8. **继承映射(Inheritance Mapping)**:JPA支持单...
在 JPA 中,使用 `@OneToMany` 注解来定义这种关系,并通过 `@JoinColumn` 指定关联字段。 **示例代码:** ```java @OneToMany @JoinColumn(name = "CUST_ID") private Set<Contact> contactList; ``` 这里,`...
第二本,《JPA+批注参考.pdf》,可能会详细阐述JPA的注解使用,如@Table、@Column、@Id、@GeneratedValue、@OneToMany、@ManyToOne、@OneToOne和@ManyToMany等,这些注解是JPA中实现ORM的关键。此书可能会涵盖如何...
@OneToMany、@ManyToOne、@OneToOne和@ManyToMany等注解用于定义关系映射,支持各种关联关系。 五、事务管理 Spring Data JPA利用Spring的事务管理能力,通过@Transactional注解在方法级别控制事务。这使得开发者...
在JPA中,一对多关系通过@OneToMany和@ManyToOne注解定义,级联操作如CascadeType.PERSIST、CascadeType.REMOVE允许在操作父对象时自动处理子对象的状态。 **11. JPA中的一对多延迟加载与关系维护(一对多关系:二...
本篇文章将深入探讨如何在JPA中映射关联和实现继承。 **一、JPA关联映射** 1. **一对一(OneToOne)映射**:一个实体对象对应数据库中的一个记录。通过`@OneToOne`注解来实现,可以是单向或双向。`@JoinColumn`...
8. **JPA实体**:学习如何定义实体类,使用`@Entity`, `@Table`, `@Id`, `@GeneratedValue`等注解,以及如何处理关系(如`@OneToOne`, `@OneToMany`, `@ManyToOne`, `@ManyToMany`)。 9. **转换和事件处理**:了解...
3. **实体关系映射(Entity Relationships)**:探讨不同类型的数据库关系,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany),以及如何使用注解进行映射。 4. **持久化管理...
- `@OneToOne`、`@ManyToOne`、`@OneToMany` 和 `@ManyToMany`:定义不同类型的关联关系。 - `@MapKey` 和 `@OrderBy`:在映射关联集合时提供额外的排序和键控制。 6. **组合和继承批注**: - `@Embeddable`:...