如此的hibernate用法,如此的设计!

08-09-26 freeren
1、把hibernate当jdbc的代替,各所谓的实体类与其他实体类的关系在数据库表里存的是其实的ID(有的叫code),那么相应的在映射的类里也是把其ID/CODE作为其属性,而不是其关联对象。
2、当多对多的关联有一张中间表来维护这种关系,然而却把中间表也映射成一个实体类用程序来维护。而在系统中对一个实体类的操作至少有两个接口两个实现来(dao\daoImpl,service\serviceImpl),造成好多没必要的文件。这样的分层跟分层的愿意还符合吗?
3、用界面的模型来定义领域对象,比如一个Office对象,除了其最基本的id,name等基本属性外竟然把界面上为了查询用的与其他对象的关联的属性(或者叫字段更合适)都加进来成为office的属性:
public class Office implements Serializable
{
private String officeName;//公司名称

private String phoneNo;//电话

private String faxNo;//传真

private String addressLabel;//中文地址

private String ownerCompany;//所属公司

private String baseCurrencyCode;//本位币

private String portCode;//港口代码

private String portName;//港口名称
}其中的portCode、与portName对应的是Port对象的代码与名称,Port对象有其ID:PortId.在Office表中就是因为查询的便利放了PortCode与PortName两个字段,我都看不出来,这两个算是Office的什么属性,除了便于查询。那这样的话,在Port这个表中要维护portCode与portName两字段,Office是不是也要维护,不然后万一port表中的这两个字段没有值甚至没有了这两个字段,这怎么办?

banq
2008-09-27 20:48
关键是分析设计方法不对头,使用了数据库驱动设计,误用hibernate,应该使用DDD