Hibernate Component keys

Wife is a component of Husband class and thus they are stored in one table in DB.

1.Annotation

Husband: put @Embedded before component Wife.

Only need one <mapping class="xxxx.xxx.xxx.Husband"> since wife is part of husband‘s table

@Entity
public class Husband {
        private int id;
        private String name;
        private Wife wife;

        @Id
        @GeneratedValue
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }

        @Embedded
        public Wife getWife() {
            return wife;
        }
        public void setWife(Wife wife) {
            this.wife = wife;
        }

        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
}

public class Wife {
    private String wifeName;
    private int age;

    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    public String getWifeName() {
        return wifeName;
    }
    public void setWifeName(String name) {
        wifeName = name;
    }
}

2.XML

Only Husband needs xml.

<Component name="xx of getXX()"> and list <property name="">

<hibernate-mapping package="com.hibernate.model">
<class name="Husband">
   <id name="id"></id>
    <property name="name"></property>
    <component name="wife" >
       <property name ="wifeName"></property>
       <property name ="age"></property>
   </component>
</class>

  

时间: 2024-10-08 10:44:13

Hibernate Component keys的相关文章

hibernate hibernate.cfg.xml component 组件

1.为什么使用component组件? 当一个表的列数目比较多时,可以根据属性分类,将一个java对象拆分为几个对象. 数据库还是一张表,不过有多个对象与之对应. 2.实例 2.1 Java 对象: 1 public class Person { 2 3 private int id; 4 private Name name; 5 private Parents parents; 6 7 public Parents getParents() { 8 return parents; 9 } 10

C#接口显示实现在实际开发中的作用

摘要 任何一个C#入门的程序员都知道——当一个类型在实现接口的时候,有两种方法实现:显式实现.隐式实现.而且大家也都知道,当一个类型实现的两个接口存在相同成员定义时,显示实现可以解决这种情况. 但是,在一个命名比较规范的项目中,几乎不可能出现上述情况. 那么,显示实现有什么具体存在的意义吗? 本人根据这小几年的开发历经,感觉显式实现最觉的两个作用就是: 改变接口成员的使用权限 改变接口成员的出入参数 下面本人将会对这两种作用进一一说明 接口定义 本篇文章将会使用一个示例来讲述这两个作用. 我们先

hibernate的component使用

hibernate的Component,即组件,表示2个类之间的关系,即其中1个类可以作为另一个类的组件来使用. 1.先来看下annotation中关于component的API 2.2.2.3. 嵌入式对象(又名组件) 在实体中可以定义一个嵌入式组件(embedded component), 甚至覆盖该实体中原有的列映射. 组件类必须在类一级定义@Embeddable注解. 在特定的实体的关联属性上使用@Embedded和@AttributeOverride注解可以覆盖该属性对应的嵌入式对象的

千山万水之Hibernate(八)——Component映射

Component映射体现一种封装复用的思想,我们知道数据域模型的设计一般是粗粒度的,而对象模型的设计我们往往遵循细粒度.单一职责.抽象复用的原则,但到了对象模型与数据模型相互转换.对应的时候,我们就需要考虑来怎样实现来同时满足双方的基本设计理念.Hibernate中就提供相关的实现. 原理分析 对象模型: User类与Employee类存有很多相同的属性,为了更好的可维护性与灵活性,进行抽象.复用得出了Contact类,Contact类是不需要映射到数据库中表的,有了这样的需求,Hiberna

浅析Hibernate映射(四)——组件映射(component)

Component映射 在hibernate中Component映射采用<component>标签即可 Component是某个实体的逻辑组成部分,它与实体类的主要差别在于,它没有oidComponent在DDD中被称为值类 采用Component的好处:实现对象模型的细粒度划分,复用率高,含义明确,层次分明 对象模型与关系模型的设计恰恰相反,对象模型一般是细粒度的,关系模型一般是粗粒度的 示例: 对象模型: 关系模型: 映射文件: Employee.hbm.xml [html] view p

Hibernate的组件(Component)映射

在学习Hibernate框架时碰到了许多实际的问题,比如一个Name是由FirstName和LastName组成,或者说一个Address是有Province,City,County和The detailed address组成,那么这么复杂的属性作为实际设计中是不应该出现在一个类里,那么组件映射就出现了 下面展示组件映射的实例,User对象中的Name属性 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLI

component lists rendered with v-for should have explicit keys

出现这个报错的主要原因是  component lists rendered with v-for should have explicit keys 去官网看了下v-for,简单说就是有相同父元素的子元素要有一个唯一的key,这样才能避免渲染错误,具体解释如下图: 原文地址:https://www.cnblogs.com/1rookie/p/8450267.html

hibernate联合主键 组合组件(component)

package db.domain; /** * PersonId entity. @author MyEclipse Persistence Tools */ public class PersonId implements java.io.Serializable { // Fields private String firstname; private String lastname; // Constructors /** default constructor */ public Pe

hibernate学习:Component组件

一:例子 二:总结 组件映射的用法: Wife组件作为Husband的一部分. 在Husband中嵌入wife @Embedded private Wife wife; 组件映射的优点: 实现了对象细粒度的划分,层次更加分明,复用率高. 分离出来的组件,也可以作为其他对象的组件, 这样就为复用提供了方便