2009-02-10 80 views
1

我有一個實體促銷,其中有3個簡單的字段(ID,名稱,描述),所有3將被映射到數據庫。到現在爲止還挺好。問題在於第4個字段ruleModel,它是RuleModel的一個實例,在運行時構建時,它將包含十幾個其他類的對象實例。我不想將RuleModel映射到數據庫表,因爲這是很多額外的工作,也是不必要的。我只想將ruleModel對象實例存儲到DB中,然後能夠從DB加載ruleModel並在內存中恢復對象實例。如何將對象實例存儲爲EJB3實體的字段?

代碼:

@Entity 
public class Promotion { 
    @Id 
    @GeneratedValue 
    private Long id; 

    private String name; 
    private String description; 

    private RuleModel ruleModel; 

}

回答

0

如果您的規則模型類實現可序列化接口,那麼你應該能夠到RuleModel變量添加到您的促銷類。 這需要在Promotion表中添加一個新列。 當您堅持Promotion類時,RuleModel類實例的seraralized實例將存儲在新列中。

0

如果我理解正確的,你想序列化RuleModel實例 - 其中包含了許多其他實例的引用 - 當你反序列化,你會接受所有引用ruleModel此前舉行的會丟失。如果這是你的目標,你需要做兩件事情:

  1. 標誌中的任何字段RuleModel具有瞬態是
  2. 註釋RuleModel與JPA @Embeddable註釋
  3. 的註解ruleModel促進@Embedded

雖然這不會對ruleModel情況持續到一列,它會持續的情況下成促進使用同一個表的多個列。它也將按照您的意願重新實施ruleModel

相關問題