2012-09-25 14 views
7

मुझे अमेज़ॅन डायनेमो डीबी के लिए एक उपयोगकर्ता क्लास मैप करने की आवश्यकता है। उपयोगकर्ता ऑब्जेक्ट पर गुणों में से एक खाता टाइप (एक enum) है। इससे मैं कैसे निपटूं? नीचे enum और कोड मैंने कोशिश की है।अमेज़ॅन डायनेमो डीबी मैपिंग एनम्स

public enum AccountType { 
    TYPE_A, 
    TYPE_B 
} 

-

@DynamoDBAttribute(attributeName="AccountType") *<< THIS FAILS* 
public AccountType getAccountType() { 
    return accountType; 
} 

किसी भी मदद की सराहना की जाएगी।

+0

त्रुटि संदेश या विफलता कोड निर्दिष्ट करके प्रश्न में सुधार किया जा सकता है: क्या रिकॉर्ड जारी नहीं है? क्या त्रुटि समय पर त्रुटि होती है? चलने के समय पर? एक विशिष्ट परीक्षण के दौरान? –

उत्तर

11

उच्च स्तरीय एपीआई (वस्तु हठ मॉडल) Amazon DynamoDBAWS SDK for Java द्वारा प्रदान की अभी तक enum का समर्थन नहीं करता, तो Supported Data Types देखें:

अमेज़न DynamoDB आदिम डेटा प्रकार के बाद और आदिम का समर्थन करता है रैपर वर्ग।

  • स्ट्रिंग
  • बूलियन, बूलियन
  • बाइट, बाइट
  • दिनांक
  • कैलेंडर (ISO8601 मिलीसेकंड परिशुद्धता स्ट्रिंग के रूप में, यूटीसी में स्थानांतरित कर दिया) (ISO8601 मिलीसेकंड परिशुद्धता स्ट्रिंग के रूप में, यूटीसी में स्थानांतरित कर दिया)
  • लांग, लंबे
  • पूर्णांक इंट
  • डबल, डबल
  • फ्लोट, नाव
  • BigDecimal
  • BigInteger

हालांकि, अमेज़न DynamoDB ताकि आप उस सीमा के आस-काम करने के लिए, जानकारी के लिए Mapping Arbitrary Data with Amazon DynamoDB Using the AWS SDK for Java Object Persistence Model देखने में सक्षम हो सकता है, मनमाने ढंग से डेटा प्रकार सिद्धांत रूप में का समर्थन करता है :

समर्थित जावा प्रकारों के अतिरिक्त [...], आप प्रकारों का उपयोग कर सकते हैं I n आपका आवेदन जिसके लिए अमेज़ॅन डायनेमो डीबी प्रकारों पर कोई प्रत्यक्ष मैपिंग नहीं है। इन प्रकारों को मैप करने के लिए, आपको एक कार्यान्वयन प्रदान करना होगा जो आपके जटिल प्रकार को स्ट्रिंग और इसके विपरीत के उदाहरण में परिवर्तित करता है और @DynamoDBMarshalling एनोटेशन प्रकार का उपयोग कर जटिल प्रकार एक्सेसर विधि को एनोटेट करता है। [...]

16

एडब्ल्यूएस एसडीके एक एनम को स्ट्रिंग में बदलने के लिए विशेष एनोटेशन DynamoDBTypeConvertedEnum का समर्थन करता है।

@DynamoDBTypeConvertedEnum 
@DynamoDBAttribute(attributeName="AccountType") 
public AccountType getAccountType() { 
    return accountType; 
} 
संबंधित मुद्दे