为了账号安全,请及时绑定邮箱和手机立即绑定
  • 勤记录
    查看全部
  • 关联映射注解 一对一单向关联外键 在一方持有另一方类类型的引用. @OneToOne、@JoinColumn注解都是属性注解. @OneToOne注解包含必填cascade属性,表示级联操作. 在哪个model应用cascade属性就表示该表的操作会级联另一个表. @JoinColumn注解用来指明外键. name属性(必选):指定外键名. unique属性(可选):表示外键的值是否唯一. 一对一关联,外键的值是唯一的. 一对多关联、多对多关联,外键的值则不唯一. @JoinColumn指定外键后,会在相应的表中创建外键字段.(使用Hibernate自动创建表结构). 外键用来关联参照表的主键,成为外键表.(一对一关系中,只有一个表存在外键). 在Hibernate中,如果表里存在外键字段.则在model中无需存在外键的属性.直接配置即可.(name值对应表中外键列的列名) 外键表: @Entity public class Student{ @OneToOne(cascade="CascadeType.All") @JoinColumn(name="iid"); private Idcard idcard; @Id @GeneratedValue private Integer sid; private String gender; } 参照表: @Entity public class Idcard{ @Id @GeneratedValue private Integer iid; private String idnum; }
    查看全部
  • 实体之间的关系
    查看全部
  • @Transient注解 该注解是属性注解. 表示该属性并非一个到数据库的字段的映射,ORM框架将忽略该属性,如果model中的一个属性并非数据库表的字段映射,就应将其用@Transient注解标注,否则ORM框架默认其注解为@Basic.
    查看全部
  • @EmbeddedId注解 该注解为属性注解. @EmbeddedId使用嵌入式主键类实现复合主键. 嵌入式主键类中只能有主键属性(使用@EmbeddedId注解标注) 嵌入式主键类必须实现Serializable接口、必须有默认public无参构造方法、必须重写equals、hashCode方法. @Embeddable public class PK implements Serializable{ @EmbeddedId private String idcard; @EmbeddedId private String sid; //重写equals、hashCode方法. //无参公共构造方法. } @Entity public class Student{ @Id @GeneratedValue(generator="pk"); @GenericGenerator(name="pk",generator="assigned"); private Pk pk; private String gender; } 可以直接在实体类使用多个@Id注解定义为复合主键. 也可以使用嵌入主键类实现复合主键(嵌入属性依然要用@Id注解标识).
    查看全部
  • @Embedded注解 该注解是属性注解,表示该属性的类是嵌入类. 用于在一个类中存在另一个类类型的属性上. 使用@Embedded注解时,其类型对应的类上必须使用@Embeddable注解标识. @Embeddable public class Address(){ private String home; private String post; } @Entity public class User{ @Id @GeneatedValue; private Integer indexid; private String name; private String gender; @Embedded //该注解可以省略不写 private Address address; }
    查看全部
  • @Column注解 可将属性映射到列,使用该注解来覆盖字段的默认属性值.(如长度、是否允许为空等). 常用属性: name:表示数据库表中该字段的名称.默认情况下model中的属性名与数据表存的属性名一致.不一致时需要使用该属性指明. nullable:是否允许为null. unique:是否为唯一标识. length:字段长度,仅对String类型的字段有效,默认字符串类型的长度为255. insertable:是否在进行插入操作时该字段是否出现在INSERT语句中,默认为true. updateable:可选,是否在进行更新操作时该字段是否出现在UPDATE语句中.默认为true.用于一经创建就不可以更改该字段的值.
    查看全部
  • @GeneratorValue指定主键的生成策略. 如果一个主键没有添加@GeneratorValue注解,则就是一个普通的主键,无生成策略. 当主键是int类型时,此时可以使用自动增长类型(非int不行). @Id @GeneratedValue //该注解默认就是auto类型,根据底层数据库自动选择策略. private int no; 相当于: @GeneratedValue(strategy=GenerationType.AUTO) 如果主键采用手工赋值的方式. 那么就要使用@GeneratedValue注解的generator属性指定主键生成器的名称. 并且使用@GenericGenerator注解定义主键生成器. @GenericGenerator为属性注解,标注在主键上.具有name、strategy属性. name:指定主键生成器的名称 strategy:指定主键生成器的生成策略(字符串类型) 例子: @Id @GeneratedValue(generator="text") @GenericGenerator(name="text",strategy="assigned") private String sid; @GeneratedValue的generator属性要与@GenericGenerator的name属性保持一致. 表示@GeneratedValue所指定的主键生成器为@GenericGenerator定义的主键生成器.
    查看全部
  • @GeneratedValue与@TableGenerator结合使用的例子: @TableGenerator注解将当前主键的值单独保存到一个数据库的表中,主键的值每次都是从指定的表中查询来获得.该表中的数据可以是根据UUID生成的. 这种方法生成主键的策略可以适用于任何的数据库,不必担心不同数据库不兼容造成的问题.
    查看全部
  • @GeneratedValue注解 @GeneratedValue注解与@Id注解一起使用,用于定义主键的生成策略. 包含两个属性strategy(主键生成策略)、geneator(主键生成器) strategy可以取: 1.GenerationType.AUTO:根据底层数据库自动选择(默认) 2.GenerationType.INDENTITY:根据数据库的Identity字段生成. 3.GenerationType.SEQUENCE:使用Sequence(序列)来决定主键的取值. 4.GenerationType.TABLE:使用指定的表来决定主键的取值 (结合某些表来实现,必须与@TableGenerator注解一起使用).
    查看全部
  • mysql默认字符串类型的字段其长度为255. mysql规定使用String类型的字段作为主键时,字符串的长度不能过长. 当使用@Id注解标识一个字符串属性作为主键时,若没有设定其长度,则默认255会超出它作为主键规定的长度,此时就会发生错误. 使用@Column注解的length属性设置model属性映射到数据库表里对应字段的长度. @Column注解标注在属性上.
    查看全部
  • @Id注解 一个实体类可以有一个或者多个属性被映射为主键.如果有多个属性定义为主键属性,该实体类必须实现serializable接口.
    查看全部
  • Hibernate属性级别注解有很多.其中红色部分为常用的属性注解.
    查看全部
  • 使用JPA注解与数据库表进行映射时,则不需要为每张数据表建立对应的hbm.xml配置文件.直接通过在model类上使用注解进行数据表的关联操作. 只需在Hibernate.cfg.xml主配置文件中使用<mapping>标签的class属性指定关联的model全限定名.
    查看全部
  • @Embeddable注解 相当于hbm配置中的<component>组件属性,@Embeddable注解标注在组件类上. 即一个类中包含另一个类的对象作为属性.使用Hibernate自动生成表结构时,会建立一张带有组件属性与非组件属性的表.
    查看全部

举报

0/150
提交
取消
课程须知
学习本门课程前,需要具备以下技能: 1、精通Java语法和面向对象思想。 2、掌握JDBC数据库开发流程 3、熟悉SQL语句
老师告诉你能学到什么?
1、掌握类级别注解、属性基本注解和关联映射注解 2、能够灵活应用Hibernate注解进行开发

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!