2016年2月31

hibernate注解


@Entity注解需要注意,name属性是用来指定表名字的,如果数据库表明和实体类的名字一样,可以不写,另外实体类必须有唯一的标示,不然不能生成数据库表;


@Table注解一般配合@Entity使用,另外@table的有catalog和schema的属性,catalog是数据库的路径,schema是设置数据库的名字,(如果使用mysql数据库的话不使用catalog属性,);


@Embeaddable,嵌入注入,被这个名字注解的类,在另外一个实体类中,充当属性,不在表示一个实体类;生成table的时候,被emabeaddle注入的实体类的属性被移植到另外一个类中,


@Embedded是指引用被@Embeddedale注解类的属性


@EmbeddedID用来使用联合主键


如果一个类有多个@ID那个这个 类必须要集成serializable接口


@column默认String的字段比较长,和数据库varchar的字段不匹配,可以设置@column(length=8);
另外还有name,nullable,unique,length,insertable,updateable,


@GeneratedValue默认有两个字段,strategy主键生成策略,(默认auto< 自动>,identity<唯一>,sequence<序列>,table<可以配置uuid生成策略>)generator主键生成器


@Trasient表示,当java bean中的某个属性不想被映射到数据库是,可以使用该属性


一对一单向外间关联
@OntoOne(scacade=cascadeTpe.All)<表示全部级联关系,级联更新,级联删除>
@JoinColume(name=”pid”,unique=true)<被控类的外键设置>


一对一的双向外键级联关系,是在被k控方写@OnetoOn(mappedBy=“car”),还需要写主控方的类的声明,就是两个类里面都写了映射的注解,所以才是双向数据绑定


多对一单向外键关联
@manytoOne(cascade={cascadeType.All},fetch=Fetch.Type.EAGER<积极主动去抓取数据>)
@JoinColume(name=’cid’,referenceColumeName=”CID”)<外键名称>

———————————————

一对多的单向外键关联
@OnetoMany(cascade={cascadeType.All},fetch=FetchType.LAZY)
@JoinColume(name=”cid”)
一般在多对一的情况下使用EAGER策略,而一对多使用的是lazy策略,
并且一对多是一方持有另一方的集合,所以在多的一方需要写set集合

>>>>>>>一方持有多方的集合,使用set集合<<<<<<<<<<<

一对多(多对一)双向外键关联
一方持有多方集合,多方持有一方引用

——————————————

多对多,单向外键

就是多方持有多方集合

多对多双向外键绑定
一方要manytomany(mapedby=“类名”)
两一方要维护关联的table
@manytomany
@jointable(
name=“student_tearchs”,
joincolumes:{@joincolume={name=”sid”}},
inverjoincolumes:{@joincolume={name=”tid”}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值