1--1: N--1:ActivityFeedback--&Activity(n个反馈对应一个活动) 无连接表:@ManyToOne(直接通过外键策略处理关联映射) -cascade:是否会自动先保存外键对象,再保存实体对象 -fetch:join -lazy -unique 有连接表:@JoinTable 1--N:1的一端需要访问N的一端,而N的一端则需要以集合的形式出现(Set) @OneToMany N--N: @ManyToMany (双向7*2连接表=14种)
---关联映射的Annotation注解:
(建议不要在属性上引入注解,因为属性是private的,如果引入注解会破坏其封装特性,所以建议在getter方法上加入注解)
@Entity//注解实体类
@Table(name="t_user")//注解表名
@Id//注解主键ID
@Column(name="person_name")注解字段名,还提供其他多个属性进行设置:name,length,nullable,insertable,updateable,unique等
@JoinColumn(name="pid")指定外键的名字为pid,如果没有指定外键名默认为:(字段名)_id,同时也提供其他多个属性:name,nullable,insertable,updateable,unique等
---@JoinTable
@JoinTable(name = "t_mtm2_teacher_course", //@JoinTable指定中间表表名
joinColumns = { @JoinColumn(name = "cid") }, //joinColumns指定该表在中间表中的外键名称,没有指定则用默认值
inverseJoinColumns = { @JoinColumn(name = "tid") })//inverseJoinColumns指定另一方在中间表中的外键名称
---单向双向的区别:根据是否有一方使用mappedBy来判断
单向:如A表外键到B表,不过B表不做其他操作,A表可以取到B表,而B表取不到A表
双向:如A表外键到B表,同时B表通过(mappedBy)代码控制,令A表可以去到B表,且B表也可以取到A表
单向:没有使用mappedBy
双向:使用mappedBy
---有无中间表:如果没有指定由谁来维护关联关系,则会创建一张中间表,由mappedBy,@JoinColumn,@JoinTable共同影响
---mappedBy属性:
链接:http://xiaoruanjian.iteye.com/blog/1094253
假设@OneToOne(mappedBy="person"),Pserson与IDCard一对一
mappedBy指定由包含person属性的一方来维护关联关系(建立外键),
使用mappedBy属性后,则该表中不会建立外键
若没有使用mappedBy属性,则该表也会建立外键
使用mappedBy属性后,虽然生成的该表中没有包含外键字段,但通过代码控制,也可以访问到外键表的内容,也可调用外键的get,set方法
使用mappedBy属性后,就属于双向关联:
@OneToOne,@OneToMany,@ManyToOne,@ManyToMany:
超强链接:http://www.ibm.com/developerworks/cn/java/j-lo-jparelated/
-报错:java.lang.NoSuchMethodError: javax.persistence.OneToOne.orphanRemoval()Z,javax.persistence.OneToMany.orphanRemoval()Z
链接:http://blog.csdn.net/yanxiahua/article/details/8691614
---@MappedSupperclass
链接:http://cwalet.iteye.com/blog/1026626
由@MappedSuperclass注解的类不是一个真正的实体类,他不会映射到数据库表,
但是他的属性都将映射到其子类的数据库字段中。(供子类继承,共享属性)
标注为@MappedSuperclass的类不能再标注@Entity或@Table注解,也无需实现序列化接口。
如果一个标注为@MappedSuperclass的类继承了另外一个实体类或者另外一个同样标注了@MappedSuperclass的类的话,
他将可以使用@AttributeOverride或@AttributeOverrides注解重定义其父类(无论是否是实体类)的属性映射到数据库表中的字段。
如:
@MappedSuperclass
public class MyAuditableModel{
//....
}
---hibernate继承映射与多态查询:
链接:http://blog.csdn.net/jialinqiang/article/details/8711508
链接:http://www.ibm.com/developerworks/cn/java/j-hibernate/
链接:http://www.blogjava.net/freeman1984/archive/2009/11/02/300702.html
参加"testEntity"