使用中间表将实体属性映射到另一个表的列

时间:2014-01-29 09:05:56

标签: hibernate

听起来很复杂但很难在标题中表达。 这是我常见的情况,也可能是其他一些情况。 假设我们有一个Car实体和CarType实体。 CarType很简单,有id,name,几乎都是。

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请求发送)。编码并不困难,但在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后处理中。

如果有人有想法分享或知道答案

1 个答案:

答案 0 :(得分:0)

如果您只需要显示数据,则可以在DB中定义一个视图,该视图仅包含相关列和映射到视图的实体:

@Entity
class CarView{
    private long id;
    private String carNumber; 
    private CarType carName;
    .....
}

请勿使用视图支持的实体修改数据。