我还在努力解决这个问题:
很抱歉改写和重新发布...
一旦我尝试实施它们,我的想法根本就不起作用。最大的问题是PK / FK字段似乎不兼容。这是我想到的两张表:
Campaign
PK Long campaignId
String description
Promotion
PK Long campaignId (FK to Campaign)
PK Long discount (unique set of discounts for the campaign)
String messgge
(每个广告系列都有很多促销活动)
问题是没有Campaign对象就不能存在促销。使用promotionIds非常繁琐。我真正需要的是在对象模型中拥有单个Campaign对象,我只需访问与之关联的Promotions集。每个促销都只有折扣和与之相关的消息。如下所示:
class Campaign {
Long campaignId;
String description;
Set<Promotion> promotions;
// constructors, getters, setters
}
class Promotion {
int discount;
String message;
// constructors, getters, setters
}
这一切都可能吗?如何使用标准JPA注释使用Hibernate映射?只要我能拥有上述对象模型,我就不再关心表映射了。
请...... :(
修改
我使用促销方面的@ElementCollection并将促销从@Entity更改为@Embeddable。这很好用,正是我需要的。但是,现在审计工作因Envers拒绝使用列表而中断。
我知道Promotion表中的campaignId和折扣是唯一的,但我该如何告诉Envers?