0 0

如何使JPA不对OneToMany关系创建关联表?0

我的JPA实现是Hinbernate,在我的是entity上有一个OneToMany的注释

Company类定义

    @OneToMany(mappedBy = "company")    
    private List<User> users = new ArrayList<User>();


User类定义
    @ManyToOne
    @JoinColumn(name = "COMPANY_ID", nullable = false)
    @NotNull
    private Company company;


create table Users(
  id integer primary key,
  company_id integer,
  name varchar(20)
)

create table Companies(
  id integer primary key,
  name varchar(20)
)


当系统启动后,JPA总会为我创建一张关联表COMPANIES_USERS,我不想要这张表,如何实现。我只想通过外键让Company对象能查到自己有哪些所属User。

在网上看到有人说加上mappedBy, 但是JPA还是为我创建了关联表。
  @OneToMany(mappedBy = "company")
2013年5月06日 14:34

3个答案 按时间排序 按投票排序

0 0

@OneToMany(mappedBy = "company") 
@JoinColumn(name="company_id")
private List<User> users = new ArrayList<User>(); 

2013年5月11日 21:09
0 0

你这个应该是自动生成的sql吧?
如果使用jpa,不想通过中间表建立关联,你上面的注解没有问题的。
你重启之前,先把那个中间表drop掉,然后再重启,看看可自动生成了

2013年5月06日 15:06
0 0

因为你是 @ManyToOne    从另一边看是@OneToMany  即1:多 需要使用管理表

从你的这个sql上看 你需要的是1:1
create table Users( 
  id integer primary key, 
  company_id integer, 
  name varchar(20) 

2013年5月06日 14:59

相关推荐

    JPA_OneToMany学习教程

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

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

    为了处理这种关系,通常需要创建一个关联表作为中间表。在 JPA 中,使用 `@ManyToMany` 注解来定义这种关系,并通过 `@JoinTable` 注解来指定中间表的结构。 **中间表只有关联的两张表字段的情况:** 当中间表仅...

    JPA关联关系

    在实际开发中,利用IDEA等集成开发环境的JPA工具支持,可以便捷地创建和管理这些关联关系。例如,使用反向工程(Reverse Engineering)可以从现有数据库生成实体类和映射文件,直观地查看和调整关联关系。此外,...

    JPA-4 映射关联关系

    在Java Persistence API (JPA) 中,映射关联关系是数据模型设计的重要组成部分。JPA 提供了多种方式来处理不同类型的关联关系,包括单向多对一、单向一对多、双向一对一、双向多对一和双向多对多。下面我们将详细...

    JPA课程manyToMany OneToMany 等全部测试

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

    JPA常用关系实现例子

    这些关系定义了实体间的关联,有助于在数据库设计中创建复杂的业务模型。 1. **一对一关系(OneToOne)**: 在一对一关系中,一个实体对应于另一个实体的一个实例。这种关系通常用@OneToOne注解来声明,并可以通过...

    JPA实体关联(hibernate实现)

    在JPA中,我们使用`@OneToMany`注解来定义这种关系。默认情况下,关联是不级联的,可以通过`cascade=CascadeType...`来指定级联操作,如保存或删除。`mappedBy`属性用于指定在多方实体上的关联字段,它指向的字段应...

    jpa 关联映射jpa 关联映射jpa 关联映射

    通过以上示例,我们了解了如何在 JPA 中定义实体之间的关联关系,并且学习了如何使用 `@ManyToOne`、`@JoinColumn`、`@OneToMany` 等注解来描述实体之间的多对一和一对多关系。此外,还讨论了级联操作 (`cascade`) ...

    JPA_2_一对多双向关联关系

    **JPA 2 一对多双向关联关系** Java Persistence API(JPA)是Java平台上的一个标准,用于处理对象关系映射(ORM),使得开发者可以使用面向对象的方式操作数据库。在JPA中,一对多关联关系是常见的实体间关系类型...

    jpa单表递归树形结构实现

    在数据库中,树形结构通常通过自关联来表示,即一个表的某个字段引用该表自身,形成一个层级关系。对于单表递归,这意味着所有节点都在同一张表中,通过一个父节点ID字段来标识其子节点。 创建这样的结构,我们需要...

    jpa的实体映射关系7种

    使用`@ManyToMany`注解,关联表通常由JPA自动创建,除非自定义了`@JoinTable`。 7. **双向多对多**: 双向多对多是最复杂的关系,允许两个实体互相拥有对方。双方都需要`@ManyToMany`注解,且通过`mappedBy`属性...

    jpa-day3-onetomany.zip

    总的来说,"jpa-day3-onetomany.zip"压缩包中的内容将帮助你理解和掌握Spring Data JPA中的一对多关系和多表联查操作。通过学习和实践这些示例,你可以更加熟练地在Java应用中处理数据库的关联关系,提高开发效率。

    JPA学习笔记-EJB-04JPA关联映射总结

    2. `@OneToMany`:一对多关系,一个实体可以有多个相关联的实体。 3. `@ManyToOne`:多对一关系,多个实体对应另一个实体的单一实例。 4. `@ManyToMany`:多对多关系,多个实体可以关联多个其他实体,通常需要一个...

    JPA视频教程_使用jpa映射关联和继承

    在这个**“JPA视频教程_使用jpa映射关联和继承”**中,我们将深入探讨如何利用JPA来处理实体之间的关联和类的继承关系。 **1. JPA 注解** JPA 注解是实现ORM的主要手段,它们可以直接在实体类上声明,用于定义...

    JPA 黎活明JPA视频代码

    在JPA中,使用`@ManyToMany`注解来定义这种关系,并通常需要一个中间表来存储关联信息。 4. **JPAOneToOne**:这里演示的是JPA中一对一关联的实现。一对一关联是指一个实体只与另一个实体的一个实例相关联。使用`@...

    JPA

    `@ManyToMany`注解用于映射这种关系,并且通常会有一个中间关联表。`@JoinTable`注解用于定义中间关联表的结构。 ### 总结 JPA是Java应用中处理数据库操作的强大工具,尤其当它与Spring框架结合时,能够提供一个...

    JPA源文件/jpa学习

    JPA 2.0引入了许多增强功能,比如支持@OneToMany和@ManyToMany关系的双向映射,新增了@Temporal注解以处理日期和时间,增强了Criteria API,引入了@SecondaryTable注解以支持多表映射,还引入了Entity Graph来优化...

    JPA中文解释,JPA的API

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

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

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

    传智播客JPA学习笔记.pdf

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

Global site tag (gtag.js) - Google Analytics