Hibernate映射关系

1、主键相同的一对一关系(商店与商家账户的管理)

两个实体类使用相同的主键,反过来,具有相同主键的尸体被视为一对一的关系。这样就省掉外键关联。

商店类:

@Entity
@Table(name="tb_store")
public class Store {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;
    /**
     * 区信息之外的详细商店地址
     */
    @Column(nullable=false)
    private String address;
    /**
     * 商家名称
     */
    @Column(nullable=false)
    private String name;

}

商家账户:

/**
 * @author JL 用户类
 */
@Entity
// 实体类配置
@Table(name = "tb_seller")
// 表格配置
public class Seller {

    /**
     * 这里仅仅设置为主键,但不要自增长。
     */
    @Id
    private Integer id;

    @OneToOne
    @PrimaryKeyJoinColumn
    private Store store;

}

创建的时候:

先创建store,然后new 一个seller,此时将store的id赋值给seller,再创建seller

Done

Hibernate映射关系

时间: 2024-10-05 08:02:09

Hibernate映射关系的相关文章

Hibernate映射关系之多对多

1.用户表user和优惠券coupon存在多对多的关系,一个用户可以拥有多个优惠券,一个优惠券可以从属于多个用户. 2.user.java,创建了中间表tb_user_coupon (1)JoinTable表示中间表的 (2) /** * 一个用户可以拥有多个优惠券 但优惠券只有自己的属性,没有用户的引用 单边的一对多关系 */ @ManyToMany(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST }) @JoinTable(n

Hibernate映射关系之一对多

1.双边使用的比较多,所以这里用双边的一对多:一个商店包含多个优惠券,一个优惠券对应一个商店 Store.java(商店) @OneToMany(mappedBy="store",cascade = {CascadeType.REMOVE }) private Set<Coupon> coupons=new HashSet<Coupon>(); (1)mappedBy="store"是在Coupon类中的Store的变量名称 (2)Casca

Hibernate学习8—Hibernate 映射关系(多对多)

第二节:Hibernate 多对多映射关系实现 比如学生和课程是多对多的关系: 一个学生可以选多个课程: 一个课程可以被多个学生选中,所以是多对多的关系: 1,多对多单向实现: 单向关系: 这里通过学生可以获取这个学生选修的课程: 但是通过课程无法获取选修这门课程的学生: Student.java: package com.cy.model; import java.util.HashSet; import java.util.Set; public class Student { privat

(八)Hibernate 映射关系

所有项目导入对应的hibernate的jar包.mysql的jar包和添加每次都需要用到的HibernateUtil.java 第一节:Hibernate 一对一映射关系实现 1,按照主键映射: 2,按照外键映射: 1,按照主键映射: User.java 1 package com.wishwzp.model; 2 3 public class User { 4 5 private int id; 6 private String name; 7 private Address address;

Hibernate映射关系-多对多

接着上几篇博客,hibernate的映射关系,今天我们说说基本关系的最后一种:多对多. 一 .多对多关系 现象:多对多关系,在生活中很常见,就那学生与选修课之间的关系,一个学生可以选择多门选修课,而每个选修课又可以被多名学生选择.还有就是一个用户可以有多个角色,一个角色可以有多个人,等等这样的例子很多. hibernate实现:多对多关联关系采用第三张表的方式来实现,将多对多转化为两个一对多. 当然,多对多也是有方向的.拿用户--角色来画类图. 1.单向关联--用户关联角色 多对多关系在hbm文

Hibernate学习8—Hibernate 映射关系

第一节:Hibernate 一对一映射关系实现 假设一个用户对应一个地址: 1)按照主键映射: User.java: package com.cy.model; public class User { private int id; private String name; private Address address; public int getId() { return id; } public void setId(int id) { this.id = id; } public St

《Java从入门到放弃》入门篇:使用注解的方式配置hibernate映射关系

之前我们都是使用配置文件的方式来生成的代码,虽然和JDBC比较简单了很多,但每次都在修改时需要既改实体类又改映射文件.还是有点麻烦. 所以,这一篇,我们来说说使用注解的方式来在接在实体类上配置映射关系. 第一步:新建一个项目,或者把之前项目中的实体类.映射文件,还有hibernate中的mapping标签都删除,然后在DBBrowser中再次生成实体类.如下图: 红框中的选项就表示直接在POJO上以注解的方式加上映射关系.注意括号内的hibernate版本,必须是3.2及以上的才行. 生成后的实

Hibernate映射关系:一对一、一对多和多对多

在 Hibernate 中,同样可以对多张存在关联关系的表进行操作,但需要在映射文件中,将对象的关联关系与数据库表的外键关联进行映射.本章将对 Hibernate 的关联关系映射进行详细讲解. 在关系型数据库中,多表之间存在着三种关联关系,分别为一对一.一对多和多对多,如图 1 所示 图 1  关系型数据库中多表之间的三种关联关系 这三种关联关系的具体说明如下. 一对一:在任意一方引入对方主键作为外键. 一对多:在“多”的一方,添加“一”的一方的主键作为外键. 多对多:产生中间关系表,引入两张表

Hibernate 映射关系

映射组成关系 •建立域模型和关系数据模型有着不同的出发点: –域模型: 由程序代码组成, 通过细化持久化类的的粒度可提高代码的可重用性, 简化编程 –在没有数据冗余的情况下, 应该尽可能减少表的数目, 简化表之间的参照关系, 以便提高数据的访问速度 •Hibernate 把持久化类的属性分为两种: –值(value)类型: 没有 OID, 不能被单独持久化, 生命周期依赖于所属的持久化类的对象的生命周期 –实体(entity)类型: 有 OID, 可以被单独持久化, 有独立的生命周期 •显然无法