基于注解配置的hibernate

基于xml的配置:

实体+实体.hbm.xml+hibernate.cfg.xml

基于annotation的配置:

实体+hibernate.cfg.xml

如下:

实体
hibernate.cfg.xml



OneToMany的双向配置:

one

其中的注解配置是:

@Entity

@Table(name="t_classroom")

@Id

@GeneratedValue

@OneToMany(mappedBy ="classroom")//指定由对端来维护关系

@LazyCollection(LazyCollectionOption.EXTRA)//相当于lazy=exta让其智能化

Many

其中的注解配置是:

@Entity

@Table(name="t_student")

@Id

@GeneratedValue

@ManyToOne(fetch = FetchType.LAZY)//启用延迟加载策略

@JoinColumn(name="cid")//指定由这一端来维护关系,不让它生成中间表




OneToOne的双向配置:


不维护关系的一方
维护关系的一方

其中的注解配置为:

@Entity

@Table(name="t_idcard")

@Id

@GeneratedValue

@OneToOne(mappedBy ="person")//指定不由这端来维护关系,由对端来维护关系

其中的注解配置为:

@Entity

@Table(name="t_idcard")

@Id

@GeneratedValue

@OneToOne

@JoinColumn(name ="pid")//指定由这一端来维护关系




ManyToMany双向配置:

不维护关系的一方

其中的注解配置:

@Entity

@Table(name="t_admin")

@Id

@GeneratedValue

@ManyToMany(mappedBy ="admins")//指明不维护关系


维护关系的一方

@Entity

@Table(name="t_admin")

@Id

@GeneratedValue

@ManyToMany

@JoinTable(name="t_role_admin",joinColumns = {@JoinColumn(name="rid")},

inverseJoinColumns = {@JoinColumn(name ="aid")})

//指定生成的中间表的属性




两个ManyToOne代替ManyToMany


teacher

配置文件是:

@Entity

@Table(name="t_teacher_course")

@Id

@GeneratedValue

@OneToMany(mappedBy ="teacher")

@LazyCollection(LazyCollectionOption.EXTRA)

course

配置文件时:

@Entity

@Table(name="t_teacher_course")

@Id

@GeneratedValue

@OneToMany(mappedBy ="teacher")

@LazyCollection(LazyCollectionOption.EXTRA)

teachercourse


配置文件时:

@Entity

@Table(name="t_teacher_course")

@Id

@GeneratedValue

@ManyToOne

@JoinColumn(name="tid")

@ManyToOne

@JoinColumn(name="cid")



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,806评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,854评论 0 11
  • 2017年8月21日 我原本只想简单记录一下springboot中应用Jpa的简单操作。不想由于hibernate...
    行者N阅读 6,557评论 0 23
  • 1.类级别注解 @Entity映射实体类 @Table映射数句库表 @Entity(name="tableName...
    苗義阅读 1,171评论 0 47
  • 一 2007年我大学和一位同学成为好友发展了近十年的恋爱-----简称S 2017年我和一位网友发展了一段柏拉图式...
    helen1990_阅读 325评论 0 0