基础类BaseEntity:
private String id;
private Date createDate;
private Date modifyDate;
下面有20+个继承类
1.EntSummary
public class EntSummary extends BaseEntity {
private String sumImage;//示例图片地址
private String sumIndex;//显示顺序
private String sumType;//类型 0公司简介 1五大创新 2服务流程 详细参考数据字典表
private String sumStatus;//状态 0正常(默认) 1失效 2过期
private String sumDescription;//描述
2.EntItems
public class EntItems extends BaseEntity {
private String itemName;//项目名称
private int itemPrice;//原价格,正常价格
private int itemSalePrice;//现价格,特惠价格
private String itemDescription;//描述
private String itemImage;//logo图片,是个路径地址
private String itemStatus;//状态 0正常(默认) 1失效 2过期 3特价
3.EntTrades
public class EntTrades extends BaseEntity {
private String modCode;//车辆型号
private String itemName;//项目名称
private int tradePrice;//价格
private String memName;//姓名
private String memPhone;//电话
private String memAddress;//地址
private String memMessage;//客户留言 100字
private String memCoupon;//优惠券编号
等等。还有很多
请问 BaseEntity EntTrades EntSummary 这个几个表的映射文件 *.hbm.xml 应该怎么写?
------解决思路----------------------
你的基础类里的字段 相当于 在各个子类对应的表中都存在,所以hbm.xml文件中除了写子类中的字段之外,再加上父类中的两个字段
------解决思路----------------------
有三种方案可供选择,
1.假设A为父类,B、C都为继承A的子类,使用的@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) 为每一个类(不管是子类还是父类)创建一张表,这种方法的关键是要保证ID不能重复,hibernate中的做法是另外建一张存储ID的表M,每一次添加A类或A的子类时候,都将表M中的ID值加1,然后拿出。
2.使用一张表装下父类和子类中的所有属性,当然该表中存在大量的冗余,使用的是@DiscriminatorColumn和@DiscriminatorValue来标识不同的类。
3.使用的是join方式 .一张总表包含父类的基本定义,不同的子类在不同的表中,只包含独有的属性,但存在对总表的引用。
具体请看:http://blog.csdn.net/u013762572/article/details/43113449
------解决思路----------------------
英雄所见略同啊