Hibernate 使用中间表将实体属性映射到另一个表中的列
这听起来很复杂,但很难用标题来表达。 这是我经常遇到的情况,也可能是其他情况。 假设我们有一个Car实体和CarType实体。 CarType很简单,有id和name,这几乎就是全部Hibernate 使用中间表将实体属性映射到另一个表中的列,hibernate,Hibernate,这听起来很复杂,但很难用标题来表达。 这是我经常遇到的情况,也可能是其他情况。 假设我们有一个Car实体和CarType实体。 CarType很简单,有id和name,这几乎就是全部 class CarType{ private long id; private String carName; private String description; //not important - just to ensure private String costVa
class CarType{
private long id;
private String carName;
private String description; //not important - just to ensure
private String costValue; //not important - that we need separate CarType entity
.....
}
实体车
class Car{
private long id;
private String carNumber;
@ManyToOne //ManyToOne using extra table
private CarType carType;
.....
}
这是常见的情况。以及网页表上有车的常见情况。
从Car实体呈现数据需要大量的代码(使用jsp,尤其是通过json ajax请求发送cars列表)。编写代码并不困难,但在json ajax请求的情况下,js可能是巨大的
问题是大多数时候我只需要知道cartype.carName。其余的字段只是助手,实际上虚空是可视化的
如何映射额外辅助对象实体中的字段:
class CarTable{ // entity map to same db table as Car entity
private long id;
private String carName;
**//here mapping which i dont know how to implement**
private String carType;
}
这并不重要,但在我的例子中,这通常是一种情况,需要在服务器端预处理、jsp处理或js后处理中完成常规工作
如果有人想分享或了解答案如果您只需要用于显示的数据,您可以在数据库中定义一个仅包含相关列和映射到该视图的实体的视图:
@Entity
class CarView{
private long id;
private String carNumber;
private CarType carName;
.....
}
请勿使用视图支持的实体修改数据