2011-02-24 22 views
8

के साथ देखें हाइबरनेट का उपयोग करके एकाधिक एंटीसाइट्स के साथ एक दृश्य को कैसे मैप करें?हाइबरनेट

सादर, Chaitu

उत्तर

8

, देखें खंड 5.1.3 "कक्षा" हाइबरनेट दस्तावेज में, सही अनुभाग "आईडी" से पहले:

वहाँ एक दृश्य और एक के बीच कोई अंतर नहीं है एक हाइबरनेट मैपिंग के लिए आधार तालिका। यह डेटाबेस स्तर पर पारदर्शी है, हालांकि कुछ डीबीएमएस विचारों का सही ढंग से समर्थन नहीं करते हैं, खासकर अपडेट के साथ। कभी-कभी आप एक दृश्य का उपयोग करना चाहते हैं, लेकिन आप डेटाबेस में एक नहीं बना सकते हैं (यानी विरासत स्कीमा के साथ)।

http://docs.jboss.org/hibernate/core/3.5/reference/en/html/mapping.html#mapping-declaration-class

वहाँ भी कैसे XML का उपयोग करने के लिए पर एक उदाहरण है।

4

आप एक @subselect एनोटेशन का उपयोग कर सकते

यहाँ

आधिकारिक दस्तावेज का एक उदाहरण है:

@Entity 
@Subselect("select item.name, max(bid.amount), count(*) " 
    + "from item " 
    + "join bid on bid.item_id = item.id " 
    + "group by item.name") 
@Synchronize({"item", "bid"}) //tables impacted 
public class Summary { 
    @Id 
    public String getId() { return id; } 
    ... 
} 
+0

यह काम नहीं करता है। कृपया मेरी समस्या देखें: http://stackoverflow.com/questions/38269722/hibernate-view-creation-wont-work – emoleumassi

5

सबसिलेक्ट अपने प्राकृतिक choice.Here एक काम उदाहरण है: कहते हैं कि हम "View1 नाम के एक दृश्य है "डीबीएमएस में। आपको किसी और चीज की आवश्यकता नहीं है, अगर विचार अद्यतन नहीं किया जा सकता है, तो @Imutable का उपयोग करके प्रदर्शन समस्याओं के लिए अच्छा होगा। ध्यान दें कि आपके पास अपनी कक्षा में एक आईडी कॉलम होना चाहिए और दृश्य में

@Entity 
@Subselect("select * from view1") 
public class EventView { 
    @Id @GeneratedValue 
    private int id; 
+0

यह काम नहीं करता है। कृपया मेरी समस्या देखें: http://stackoverflow.com/questions/38269722/hibernate-view-creation-wont-work – emoleumassi