hibernate联合主键 注解方式

Posted 坏~牧羊人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate联合主键 注解方式相关的知识,希望对你有一定的参考价值。

1、方法一

主键类用@Embeddable,pojo类仍然用@Entity但是引用主键类的对象用@Id 

主键pojo类: 

@Embeddable
public class composeIdPK implements Serializable {
 private String name;
 private int id;
  @Column(length=20,name="pkName")
 public String getName() {
  return name;
 }
    @Column(length=10,name="uuid")
 public int getId() {
  return id;
 }
 。。。。。。。。。。。。。。。

pojo类: 

@Entity
public class composeId {
 private composeIdPK pk;
 private int uid;
 private String title;
 private String address;
 
 @Id
 public composeIdPK getPk() {
  return pk;
 }
。。。。。。。。。。。。。。。。。。

2、方法二:

@EmbeddedlD(*)         主键pojo类无需加@EmbeddedlD注解,只需在pojo类新属性“composeIdPK”的get方法前写@EmbeddedlD即可 

3、方法三:

@Id  @IdClass(*)  主键pojo类无需加注解,原pojo类的id,name属性保留不变,也无需新增“ComposeIDPK”属性。 只在id,name的get方法前都加@Id,并在原pojo类前加 

如下: 

@Entity
@IdClass(com.study.model.composeID.composeIdPK.class)
public class composeId {
 //private composeIdPK pk;
    private int id;
    private String name;
    @Id
    @Column(length=10,name="uuid")
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 @Id
  @Column(length=20,name="pkName")
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 private String title;
 private String address;

 





以上是关于hibernate联合主键 注解方式的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate注解映射联合主键的三种主要方式

Hibernate注解映射联合主键的三种主要方式

hibernate 联合主键一对多用注解怎么设置?

Hibernate—— 联合主键 一对一关联关系映射(xml和注解) 和 领域驱动设计

hibernate 两个外键作为主键(注解方式)

Hibernate中用到联合主键的使用方法,为何要序列化,为何要重写hashcode 和 equals 方法