`

联合主键做外键

 
阅读更多

一.创建PK类

import java.io.Serializable;

public class PKCode implements Serializable {
    
    private Integer code;
    
    private Integer codeType;
    
    public Integer getCode() {
        return code;
    }
    
    public void setCode(Integer code) {
        this.code = code;
    }
    
    public Integer getCodeType() {
        return codeType;
    }
    
    public void setCodeType(Integer codeType) {
        this.codeType = codeType;
    }
    
    public boolean equals(Object obj) {
        return super.equals(obj);
    }
    
    public int hashCode() {
        return super.hashCode();
    }
}

 二.创建实体

public class Code extends MainEntity {
    
    private PKCode codePk;
    
    private String name;
    
    public PKCode getCodePk() {
        return codePk;
    }
    
    public void setCodePk(PKCode codePk) {
        this.codePk = codePk;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
}
 
public class CodeType extends MainEntity {
    
    private String name;
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
}

 三.创建映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC   "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<!--CODE表 -->
<hibernate-mapping package="org.apache.dream.common.entity">
	<class name="Code" table="T_CODE">
		<composite-id name="codePk">
			<key-property name="code" column="I_CODE_ID" />
			<key-property name="codeType" column="I_CODE_TYPE_ID" />
		</composite-id>
	</class>
</hibernate-mapping>

 四.联合主键做外键

<!-- 状态 -->
<many-to-one name="status" class="org.apache.dream.common.entity.Code">
	<column name="I_STATUS_CODE_ID" />
	<column name="I_STATUS_CODE_TYPE_ID" />
</many-to-one>
 
分享到:
评论

相关推荐

    MySQL 创建主键,外键和复合主键的语句

    在数据库设计中,主键和外键是关系型数据库中非常重要的概念,它们用于确保数据的完整性和一致性。本文将详细介绍如何在MySQL中创建主键、外键以及复合主键。 1. **创建主键** 主键是数据库表中一个或一组字段,其...

    SSH2+JSO与三表联合主外键

    同时,Hibernate的Criteria API或HQL(Hibernate Query Language)可以帮助进行复杂的数据库查询,包括涉及多表连接的查询,这些查询可能涉及到联合主键和外键的使用。 综上所述,SSH2+JSON的结合提供了强大的后端...

    Hibernate一对一单向外键关联 (联合主键annotation)

    本篇将详细讲解如何使用Hibernate进行一对一单向外键关联,并且该关联涉及到联合主键的注解配置。 首先,一对一关联可以分为两种类型:单向和双向。在单向一对一关联中,只有一个实体知道另一个实体的存在,而另一...

    Hibernate教程08_关系映射之联合主键

    在这个配置中,`studentId`字段在`Address`实体中作为联合主键的一部分,同时也作为`Student`实体的外键。`insertable = false, updatable = false`表示Hibernate不会尝试独立更新或插入`Address`的`studentId`,...

    sql中设置联合主键的具体方法

    代码如下: ALTER TABLE 表名字 ADD CONSTRAINT pk_表名字 PRIMARY KEY( SNumber, SDate );... 您可能感兴趣的文章:sql server创建复合主键的2种方法MySQL 创建主键,外键和复合主键的语句初探SQL语句复合主键与联合主键

    python django model联合主键的例子

    在某些情况下,我们可能需要为表设置联合主键,即多个字段共同构成唯一标识。本篇文章将详细讲解如何在Django的Model中实现联合主键。 首先,我们需要了解Django中的主键(Primary Key)。默认情况下,Django会在每...

    ER模型转换为关系模式的实用规则

    4. **多对多联系的处理**:多对多的联系需要创建一个新的关系表,这个表包含两个实体各自的主键,并将它们作为联合主键或外键。 5. **弱实体的处理**:对于弱实体,除了将其转换为独立的表之外,还需要在该表中加入...

    电子商务网站数据库结构设计

    4. **主键设计**:优先使用单主键,避免使用联合主键带来的复杂性。业务属性不宜作为主键,以防修改时引发连锁反应。主键字段应选用能满足需求的最短长度,提升操作速度。 5. **考虑数据操作**:设计时需思考数据的...

    sql数据库管理系统大作业 (2).pdf

    4. **选修表**:记录学号、课程编号和分数,&lt;学号,课程编号&gt;作为联合主键,外键分别关联学生档案表和课程表。 **SQL源代码** 1. **创建数据库**:创建名为"学生信息管理"的数据库。 2. **创建表**:创建院系、...

    表one2one素材(源码)

    在数据库设计中,实现一对一关系的方法有两种:外键约束和联合主键。外键约束是在一个表中添加另一个表的主键作为外键,以此来建立两个表之间的关联。联合主键则是将两个表的主键字段合并为一个复合主键,确保了唯一...

    MySQL外键使用详解

    - **关联表格**:外键使不同的表之间建立起关联,方便进行联合查询和操作。 - **数据一致性**:通过外键约束,可以保证引用的外键值在父表中存在,防止了无效引用。 - **级联操作**:可以设置级联更新(on update...

    hibernate复合主键配置和使用

    3. 在使用复合主键时,要注意避免在多对一或一对多关系中直接使用复合主键作为外键,这可能导致映射问题。 总结,Hibernate对复合主键的处理为开发者提供了灵活性,使得处理复杂数据模型变得更加便捷。通过正确配置...

    FireBird企业解决方案编程规范

    - 尽量避免联合主键,使用自增字段作为物理主键,以分离业务逻辑和物理逻辑。 - 外键尽量单字段,开启cascade delete以实现级联删除。 3. **索引建立**: - 根据高频检索条件建立索引,以提升查询性能。 - 外键...

    oracle数据库课程设计报告学生成绩管理系统.doc

    - 成绩表(gd):包含学号(联合主键,外键关联学生表)、科目(联合主键,外键关联科目表)以及具体成绩。 五、编程步骤 这部分未提供具体内容,但通常涉及以下环节: - 设计数据库表结构 - 编写Java代码实现业务...

    关系数据库1

    这种情况下,通常会创建一个额外的“关系”表,这个表包含来自两个原始表的主键作为联合主键,以此来表示两个表之间的连接。 通过这些关键概念,关系数据库能够有效地组织和管理复杂的数据,确保数据的一致性和完整...

    数据库大作业.pdf

    - **成绩表(wk_grade)**:包含学号(Sno,联合主键,外键关联学生表),课程号(Cno,联合主键,外键关联课程表),成绩(Grade,Float,非空)。 - **老师表(wk_teacher)**:包含老师姓名(Tname,Char(30),非空...

Global site tag (gtag.js) - Google Analytics