基于注解的关联关系Hibernate(1)——引入知识
来源:互联网 发布:c语言判断水仙花数程序 编辑:程序博客网 时间:2024/06/08 13:50
- 应了解的相关知识
- 1.单/双向关联关系
首先我们要知道hibernate中单向关联关系和双向关联这个双向、单向是面向对象的说法,了解了单向关联关系和双向关联关系的区别,可以方便之后理解基于注解的Hibernate关联关系配置。
从更新角度看:双向就是这两个表无论哪一个更新另外一个表都更新,而单向就是只有主(主控)表更新从(被控)表才更新,从表更新主表不会去管。
从访问角度看:单向关联是在A类中,可以访问到B类数据,由此访问B表的数据,但在B类中却无法访问A类数据,即访问不到A表数据。
双向是在B类里也可以访问A的数据。
使用选择:看需求,如:班级表和学生表,对应的java类是班级类和学生类,若在显示学生信息的时候需要同时显示其所属的班级信息,那么就可以建立学生类到班级类的单向关联,如果要在显示班级基本信息的同时显示其所对应的学生信息,那么这时就可以建立双向关联了。
- 2.要了解的一些Hibernate基本注解
使用注解的目的:为了简化繁琐的ORM映射文件(*.hbm)的配置。
- 2.1.类级别注解
@entity
@entity注解是hibernate框架中的类级别注解之一,@entity注解常常用于放在实体类类头前。该注解还可以搭配应用的属性有:name - 表示该表主键生成策略名称,它被引用在@GeneratedValue中设置的“gernerator”值中。
@Table
@Table与@entity配合使用。只能标注在实体的class处,表示实体对应的数据库表名。@Table中的可选属性schema与catalog可以用来解决命名冲突问题。不同数据库对schema、catalog的支持不同
@Embeddable表示一个非Entity类可以嵌入到另一个Entity类中作为属性而存在。
@Embeddable不生成独立的表,可以理解@Embeddable注解类为属性集。
- 2.2属性级别注解
@Id
@Id 映射生成主键(一个实体只能有一个属性被映射为主键,一般放在该主键的get()方法前面)
a.对于复合主键,实体类必须实现serializable接口(声明式接口,不需要实现任何方法)
b.将 String类型 的属性设置成主键是一定要指定该属性的长度,可以用 Column length 注解来指定,不然 MySQL 会默认让其长度为255,而 MySQL 主键的长度不允许太长。
@GeneratorValue指定主键的生成策略.
如果一个主键没有添加@GeneratorValue注解,则就是一个普通的主键,无生成策略.
当主键是int类型时,此时可以使用自动增长类型(非int不行),该注解默认就是auto类型,根据底层数据库自动选择策略.
如果想要主键采用手工赋值的方式,要使用@GeneratedValue注解的generator属性指定主键生成器的名称,并且使用@GenericGenerator注解定义主键生成器.
例子:
@Id@GeneratedValue(generator="text")@GenericGenerator(name="text",strategy="assigned")private String sid;
@GeneratedValue的generator属性要与@GenericGenerator的name属性保持一致.表示@GeneratedValue所指定的主键生成器为@GenericGenerator定义的主键生成器.
@Column
@Column映射表的列(存在多表关联时,该注解可映射对应的关联关系,即外键)@Column描述了数据库表中该字段的详细定义。
一些特别的属性:
insertable:可选,表示在ORM框架执行插入操作时,该字段是否应出现在INSERT语句中,默认为true;
updateable:可选,表示在ORM框架执行更新操作时,该字段是否应出现在UPDATE语句中,默认为true,对于一经创建就不能修改的字段,该属性非常有用,如对于birthday字段。
@Transient 定义暂态属性
表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性,如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则ORM框架默认其注解为@Basic。
- 基于注解的关联关系Hibernate(1)——引入知识
- 基于注解的关联关系Hibernate(2)——详解+源码
- 基于注解的Hibernate中多对多关联关系的示例
- Hibernate的注解方式:多对多双向关系基于外键关联
- hibernate关联关系注解配置
- hibernate注解配置关联关系
- Hibernate关联映射基于注解
- hibernate对象关系映射(基于注解)
- Hibernate 映射关系(基于注解)
- 关于hibernate表之间的关联关系的注解使用
- Hibernate——关联关系
- Hibernate的关联关系
- Hibernate 基于注解的方式 实现的关系映射案例(一对一关系,一对多关系,多对多关系)
- Hibernate使用注解设定关联关系
- Hibernate注解多对一关联关系
- Hibernate系列一 -----注解配置关联关系
- Hibernate学习笔记(三)——Hibernate的关联关系映射
- hibernate:基于注解一对多双向关联关系外键方式
- 安装CDH时候出现主机运行状态不良情况的解决
- sql字段大小写转换
- linux之cut命令的用法
- RabbitMQ原理及实现
- Java String intern() 和 String Pool
- 基于注解的关联关系Hibernate(1)——引入知识
- Android 堆栈式管理Activity
- 比特币开发专题(数字货币原理理解及应用实例)
- ArcGIS地图抽稀
- C语言:条件表达式
- 多图上传+springMVC简单实现
- css预加载
- 【Java基础之Java IO】代码库(一)
- Scala Actor,receive不断接收消息,react复用线程,结合case class的actor,Future使用,使用Actor进行wordCount