我仍然爲此而努力:Hibernate如何映射這個?
對不起,改寫和重新發布...
我根本就沒有工作,一旦我試圖實現他們的想法。最大的問題是似乎不兼容的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
(每個戰役都有許多促銷)
的問題是,促銷離不開運動物體存在。使用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拒絕使用清單
我知道campaignId和折扣表中的折扣是獨一無二的,但我如何告訴Envers呢?
你在你的表和int折扣中有PK Long折扣;在你的班級,這是正確的?更確切地說:折扣是什麼意思 - 是推廣或引用另一張表的標識,還是某種價值,如百分比折扣? – 2012-03-27 06:49:22
謝謝你的提問。每個廣告系列(包含獨特的廣告系列標識)都會提供不同折扣的促銷活動。 (例如活動1,可以提供10%,25%和66%的促銷)。沒有宣傳活動,促銷活動就不可能存在。因此,在Promotion表格中,campaignId和折扣的組合是唯一的(即另一個活動可以提供相同的折扣...但可能每個都有不同的消息)。查看我頂部的表格。這是否更有意義? – 2012-03-27 07:05:47