• Hibernate @IdClass @EmbeddedID相关注解


    Hibernate Annotations 

    Mapping composite primary keys and foreign keys to composite primary keys: 

    http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e2177

    引用Composite primary keys use a embedded class as the primary key representation, so you'd use the @Id and @Embeddable annotations. Alternatively, you can use the @EmbeddedId annotation. Note that the dependent class has to be serializable and implements equals()/hashCode(). You can also use @IdClass.

    @Entity
    public class RegionalArticle implements Serializable {
    
        @Id
        public RegionalArticlePk getPk() { ... }
    }
    
    @Embeddable
    public class RegionalArticlePk implements Serializable { ... }       
    or alternatively
    @Entity
    public class RegionalArticle implements Serializable {
    
        @EmbeddedId
        public RegionalArticlePk getPk() { ... }
    }
    
    public class RegionalArticlePk implements Serializable { ... }

    hibernate的annotation的文档中提供了三种方法 
      1 将组件类注解为@Embeddable,并将组件的属性注解为@Id 
      2 将组件的属性注解为@EmbeddedId (方便) 
      3 将类注解为@IdClass,并将该实体中所有属于主键的属性都注解为@Id(符合编程习惯)
    主键类需要序列化(考虑到可能会将数据读写到虚拟内存中),需要重写hashcode()和equals()方法,因为要对联合主键进行比较. 

    Hibernate Annotation 联合主键三种写法的例子: 
    http://laodaobazi.iteye.com/blog/903236 
    Which anotation should I use: @IdClass or @EmbeddedId: 
    http://stackoverflow.com/questions/212350/which-anotation-should-i-use-idclass-or-embeddedid 

    Compound Primary Keys with Hibernate and JPA Annotations: 
    http://jpa.ezhibernate.com/Javacode/learn.jsp?tutorial=15usingcompoundprimarykeys 

    @IdClass and @EmbeddedId: 
    http://www.coderanch.com/t/452567/ORM/java/IdClass-EmbeddedId 
  • 相关阅读:
    【以太坊剖析】以太坊虚拟机(EVM)之基本定义
    python时间的处理
    filebeat如何在alpine镜像中运行
    apisix插件开发(lua版)
    docker容器命令安装
    安装 Ceph 对象网关
    ceph常用操作指令
    boto3使用示例
    基于lvs的ftp集群
    python rpc
  • 原文地址:https://www.cnblogs.com/lechance/p/4373263.html
Copyright © 2020-2023  润新知