在没有Hibernate映射的情况下获取类数据

时间:2013-02-27 15:28:40

标签: java hibernate

Hibernate映射:

我有以下两个班级:

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 classEmployee mapping访问{{1}}的位置?

感谢

5 个答案:

答案 0 :(得分:1)

如果使用xml映射(http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/components.html),则需要将Department定义为component;如果使用注释,则需要将@Embedded/@Embeddable实体定义为{{1}}({{3}中的§2.2.2.4 })

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我认为如果你只需要商店deptId,你就不需要创建一个Departement类。 因为在Hibernate中,实体类是从数据库中的表中表示的。

也许,您可以练习它,尝试从Department类中删除@Entity注释, @Entity类,是类成为数据库中表的注释。

抱歉我的英语不好。

答案 3 :(得分:0)

Can I access dept Id from `Department` class in Employee mapping?

想象一下,一旦你停止了程序并重新开始,你就有一个department id,你会要求data of that Class ??

不,您必须mapping为此而必须在DB中创建相应的列。

答案 4 :(得分:0)

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

class Employee {
    ...

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

    ... getters and setters....
}