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 class
中Employee mapping
访问{{1}}的位置?
感谢
答案 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....
}