hibernate之注解3
来源:互联网 发布:js防水防水涂料 编辑:程序博客网 时间:2024/05/24 05:02
@Transient
可选,表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性,如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则ORM框架默认其注解为@Basic
(即:当将一个属性设置@Transient注解时,表结构中并没有显示此属性)
关系映射注解
- 一对一单向外键
- 一对一双向外键关联
- 一对一双向外键联合主键
- 多对一单向外键关联
- 一对多单向外键关联
- 一对多双向外键关联
- 多对多单向外键关联
多对多双向外键关联
一对一单向外键关联
用到注解:@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name=”“,unique=true)
详情
这2个注解写到主类中,cascade表示级联关系,CascadeType.ALL表示全级联关系,包括级联删除,级联添加,级联更新等 ;JoinColumn表示将被控类的主键键写到主控类中充当外键,unique表示唯一,应该先保存外键对象,再保存主键对象
注意:注解要么全部写在字段上,要不全部写在getXX()方法上,千万不能混合使用否则会报如下错误 org.hibernate.MappingException: Could not determine type for: com.txr.oto.fk.IdCard, at table: Student
org.hibernate.AnnotationException: No identifier specified for entity 后来分析错误原因是因为在对VipOperatorDto进行对象关系映射的时候忘记加上主键@Id了。这个错是hibernate的annotation报的错,所以肯定是对象上加的注解有问题
注意 主键类和外键类都要session.save; 先保存外键类
一对一双向外键
- 主控方的配置同一对一单向外键关联
- 但是被控方要标注 @OneToOne(mappedBy=”card”)
- 双向关联,必须设置mappedBy属性。因为双向关联只能交给一方去控制,不可能在双方都设置外键保存关联关系,否则双方都无法保存。
- 详情
一对一双向外键联合主键
- 要借助主键类来实现,所以要创建主键类,主键类必须要实现serializable接口,重写hashCode()和equals()方法
- 主键类要写@Embeddable
- 实体类的联合主键属性上添加@EmbeddedId
多对一单向外键
- 在多数方添加@ManyToOne(cascade={CascadeType.All},fetch=FetchType.EAGER)
@JoinColumn(name=”“,referencedColumnName=”“)
fetch抓取策略,FetchType.EAGER表示积极的
JoinColumn(多方持有一方的引用,一方的外键用name表示,referencedColumnName表示外键映射到表里的字段)
详情
两个类都要加载,否则会出现错误,类如org.hibernate.exception.constraintviolationexception: could not execute statementat
- hibernate之注解3
- 【hibernate】 hibernate 注解之 SequenceGenerator
- HelloWorld之Hibernate注解
- hibernate注解 之 时间
- hibernate之注解
- Hibernate注解之@Enumerated
- Hibernate注解之@ManyToMany
- Hibernate注解之Entity
- hibernate之注解
- hibernate之注解2
- hibernate annotation 之 注解声明
- hibernate annotation 之 注解声明
- Hibernate注解(一)之@GeneratedValue
- hibernate注解开发之@GeneratedVlue
- hibernate之注解开发(04)
- hibernate 3注解
- hibernate注解之@Temporal简单用法记录
- Hibernate配置EhCache缓存之annotation注解
- 协程和线程
- 假身份证
- proguard
- 了解NameNode
- 网贷平台数据分析爬取并存入mysql,生成csv
- hibernate之注解3
- Kotlin 协程的使用
- 软考嵌入式系统设计师2015年上午试题总结
- linux命令学习-之history
- 6款 Java WEB应用开发工具(框架)
- js 基础语法demo
- 阿里云服务器上部署war包
- Launch
- 文章标题