0

休眠映射:

我有以下两个课程:

class Employee{
    int empId;
    string name;
    float salary;
    Department dept;
    // ... getters and setters....
}


class Department{
    int deptId;
    string deptName;
    // ....and other details, getter and setters..
}

现在我只有员工表

table Employee(EmpId number, Name varchar, salary number,deptId number)

不需要保留表格,Department因为我只对使用部门 ID 存储员工数据感兴趣。

我正在寻找hibernate mapping多对一、一对一、一对多但都需要dept data单独存储table

我的问题:有没有办法只保留简单的映射文件以及我可以deptId从哪里Department class访问Employee mapping

谢谢

4

5 回答 5

1

component如果使用 xml 映射(http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/components.html),则需要将 Department 定义为;@Embedded/@Embeddable如果使用注释,则需要将其定义为实体(§2.2 .2.4 在http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#entity-mapping-property

于 2013-02-27T15:36:09.777 回答
0

不要为字段deptId 建立任何关联,将deptId视为简单属性,就像您对薪水字段所做的那样

于 2013-02-27T15:35:21.677 回答
0

我想如果你只需要 store deptId,你不需要创建一个 Departement 类。因为在 Hibernate 中,实体类是由数据库中的表表示的。

并且可能,你可以练习一下,你尝试@Entity从Department类中删除注释, @Entity类,是类的注释,成为数据库中的一个表。

对不起,我的英语不好。

于 2013-02-27T15:35:22.583 回答
0
Can I access dept Id from `Department` class in Employee mapping?

想象一下,一旦你停止程序并重新开始,你有一个随身department id携带,你会向谁索要data of that Class??

不,您必须这样做mapping,并且必须在DB.

于 2013-02-27T15:41:01.150 回答
0

只需将其映射为整数。您仍然可以将其映射到表DEPT_ID上的列EMPLOYEE

class Employee {
    ...

    @Column(name = "DEPT_ID")
    Integer deptId;

    ... getters and setters....
}
于 2013-02-27T15:44:32.520 回答