weixin_40362784 2020-04-15 10:18 采纳率: 0%
浏览 324

Hibernate使用其他实体类的多个字段作为联合主键,该怎么配置?

1.有实体类Student

public class Student {
    //id为主键
    private String id;
    private String passwd;
    private String name;
    private String sex;
    private String school;
    private String major;
    private String stuClass;

    //省略了无参构造,getter/setter等方法

2.有实体类Subject

public class Subject {
    //id为主键
    private Integer id;
    private Exam exam;
    private String question;
    private String answer;
    private int score;

    //省略了无参构造,getter/setter等方法

3.有实体类AnswerSubject

public class AnswerExam {
    //使用Sstudent的id和Subject的id作为联合主键
    private Student student;
    private Subject subject;
    private String stuAnswer;

    ///省略了无参构造,getter/setter等方法

4.请问,在AnswerSubject.hbm.xml该怎么配置联合主键?已知知识如下:

    <!-- 配置联合主键 -->
    <composite-id name="id">
        <key-property name="student"
            type="com.abc.entities.Student">
            <column name="STUDENT" not-null="true">
            </column>
        </key-property>
        <key-property name="subject"
            type="com.abc.entities.Subject">
            <column name="SUBJECT" not-null="true">
            </column>
        </key-property>
    </composite-id>

    <property name="stuAnswer" type="java.lang.String">
        <column name="STUANSWER" />
    </property>

</class>

  • 写回答

1条回答 默认 最新

  • 故事不长丨 2023-07-08 10:29
    关注

    在AnswerSubject的hbm.xml文件中,您可以使用标签来配置联合主键。根据提供的信息,以下是AnswerSubject.hbm.xml的联合主键配置示例:

    <class name="com.abc.entities.AnswerSubject" table="ANSWER_SUBJECT">
        <!-- 配置联合主键 -->
        <composite-id>
            <key-property name="student" type="string" column="STUDENT_ID"/>
            <key-property name="subject" type="integer" column="SUBJECT_ID"/>
        </composite-id>
     
        <property name="stuAnswer" type="string">
            <column name="STU_ANSWER"/>
        </property>
    </class>
    

    在上面的示例中,我们假设AnswerSubject表格有两个列,一个用于存储学生的ID(STUDENT_ID),另一个用于存储科目的ID(SUBJECT_ID)。

    注意,在使用时,在实体类AnswerSubject中,需要正确实现equals()和hashCode()方法,以便正常比较和处理联合主键。

    另外,请确保在与数据库进行映射时,AnswerSubject表格的结构与上述配置相匹配,包括列名、数据类型和约束等。

    评论

报告相同问题?

悬赏问题

  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划