1.10 ID生成策略(联合主键annotation方式)

annotation联合主键的方式有三种:


一、第一种方法实现

1.新建TeacherPK类,

@embeddable

public class TeacherPK implements java.io.Serializable{
private int id;
private String name;

.......如同studentpk类,也要实现equals和hashcode方法。

2.在Teacher类中,加入TeacherPK字段,同样生成该字段的get和set方法。

private TeacherPK pk;

@ID

public TeacherPK getPK(){

}

public void setPK(TeacherPK pk){

{

3.测试代码见1.9的studentpk测试方法,一样的。

               TeacherPK pk = new TeacherPK();
pk.setId(1);
pk.setName("zhangsan");
Teacher t = new Teacher();
t.setPk(pk);
t.setAge(8);

二、第二种方法实现

1.同上述建立TeacherPK类,和在Teacher类中加入pk字段及其get、set方法。注解都不要。

2.在Teacher类中,加入TeacherPK字段,同样生成该字段的get和set方法。

private TeacherPK pk;

@EmbeddedID

public TeacherPK getPK(){

}

3.测试方法同上

三、第三种方法实现

1.同上述建立TeacherPK类,但是在Teacher类中不需要加入TeacherPK字段,teacher类中仍然保留id和name的字段,如下:

@ID

public String getID(){

}

@ID

public String getName(){

}

2.在teacher类中的id和name的get方法上面分别加上@ID,在teacher类表头

@IDclass(value=TeacherPK)

public class Teacher{{

}

3.测试方法

                Teacher t = new Teacher();

                t.setid(15)

                t.setname("liu")
t.setPk(pk);
t.setAge(8);

第一种方法用的比较少。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值