Entity ,Value Object

09-11-18 colinhere

最近做一项目,关于促销的,数据库的表是早已建好的.

想用实体与值对象来建模,以促销和促销类型来举例:

Promotion 与 PromotionType

因为表是人家已经建好的,分别是:Promotion table 和 PromotionType table.

--------------------

promotion

-------------------

id

promotiontypeId

...

-------------------

--------------------

promotionType

-------------------

id

promotiontypenName

...

-------------------

Promotion应该是一个实体,而PromotionType应该是个值对象.

每保存一个promotion,就要给它一个type,如何来建这个模型?

banq
2009-11-20 13:34

实体和值对象都是类,每保存一个promotion,就要给它一个type,这表示promotion和type两个类之间是1:1关联关系,具体采取实体promotion内引用值对象type方式实现即可。

colinhere
2009-11-21 19:24

谢谢 回复。

我也觉得是1对1的关联关系,但是有的同事说是多对一的关系。

徘徊......

colingo
2009-11-22 07:02

如果抛开数据库中的表不讲,觉得 PromotionType应该是Value Object,Promotion是个Entity

但是如果按当前给出一个单独的promotionType 的表,是不是应该把PromotionType也看作是一个Entity呢?

@Entity
public class Promotion {
...
@ManyToOne
private PromotionType type;
}
@Entity
public class PromtionType{
...
}
貌似单向的ManyToOne与单向的OneToOne除了业务意义不同,其他都一样。
抛开DB:
@Entity
public class Promotion{
...
@Embeded
private PromotionType type;
...
}
@Embeddable
public class PromotionType{
...
}
<p>

[该贴被xinying_ge于2009-11-22 07:56修改过]

fxltsbl3855
2009-11-23 20:48

一个promotion 以后有可能对应多个promotionType,

两个entity,Promotion 和PromotionType

PromotionType是Promotion 的一个属性而已