2012-06-29 8 views
5

मुझे डीबी में मॉडल में डेटा को सहेजने का प्रयास करते समय यह त्रुटि मिल रही है।[दृढ़ता अपवाद: अगली अनुक्रम प्राप्त करने में त्रुटि]

@Entity 
public class User extends Model { 
    @Required 
    public String name; 
    @Email 
    public String email; 
    @Required @MaxLength(value=10) 
    public String username; 
    @Required @MinLength(value=4) 
    public String password; 
    @Id 
    public int id; 
} 

यह मेरी कक्षा है।

यह त्रुटि है जबकि मैं मॉडल को डीबी में सहेजने की कोशिश कर रहा हूं।

enter image description here

मैं मदद के लिए किसी भी प्रयास की सराहना करेंगे! बहुत धन्यवाद।

संपादित करें: तालिका संरचना आप शारीरिक रूप से नाम दें और अपनी आईडी पर टिप्पणी करने के लिए है यहाँ enter image description here

+0

कृपया अपनी तालिका संरचना (एसक्यूएल फाइल जो टेबल बनाता है) दिखाएं। और हमें बताएं कि आप किस डीबी काम कर रहे हैं, क्योंकि, यदि यह MySQL पर है, तो यह अनुक्रमों का समर्थन नहीं करता है। –

+0

मैंने अपनी टेबल संरचना को जोड़ा, कृपया – doniyor

+0

अपडेट करें, क्या आपने अपनी टेबल जेनरेट करने के लिए ईबेन का उपयोग किया था? –

उत्तर

10

मैं ebean साथ लगता है। आपको इसे बैकिंग अनुक्रमक का नाम भी बताना होगा (मुझे याद नहीं है)। This दिखाता है कि यह कैसे करें।

+0

जॉन, बहुत बहुत धन्यवाद! वह मुद्दा था। ग्रेट स्टैक ओवरफ्लॉवर! ;) – doniyor

+0

यह समाधान मेरे लिए भी काम करता है (प्ले 2.0.4)। कुंजी मेरे उपयोगकर्ता मॉडल में इस एनोटेशन को जोड़ रही थी: '@GeneratedValue (strategy = GenerationType.SEQUENCE, जनरेटर = "users_id_seq") '। मुझे पता नहीं है कि प्ले अनुक्रम को सही तरीके से पहचान नहीं रहा है या क्या, लेकिन यह अब काम करता है। निराशा होती। – duma

+0

मुझे अनुक्रम को परिभाषित करना पड़ा, अन्यथा हाइबरनेट मुझे बताएगा कि यह user_id_seq के बारे में नहीं जानता है: '@ सिकेंस जेनरेटर (नाम = "seq_gen_name", अनुक्रमनाम = "task_seq") @GeneratedValue (strategy = GenerationType.SEQUENCE, जनरेटर = " seq_gen_name ") @Id सार्वजनिक लांग आईडी;' – Adrien

2

यह मेरे लिए काम किया:

@Entity 
@Table(name = "table", schema = "schema") 
public class Bean extends Model{ 

    @Id 
    @Column(name = "idcolumn") 
    @SequenceGenerator(name="gen", sequenceName="schema.table_idcolumn_seq",allocationSize=1) 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "gen") 
    private int id; 
} 

SequenceGenerator का उपयोग करते समय, कृपया हाइबरनेट में इस बग मन: https://hibernate.atlassian.net/browse/HHH-7232

यह बलों आप sequenceName में सीधे स्कीमा लिखने के बजाय स्कीमा क्षेत्र का उपयोग अनुक्रम जेनरेटर एनोटेशन में।

1

इस वर्ग एनोटेशन पर मेरे लिए काम किया:

@SequenceGenerator(name = "SEQUENCE_NAME", sequenceName = "PST_BUSINESS.S_BUSINESS_DOMAIN") 
@Entity 
@Table(name = "TB_BUSINESS_DOMAIN", schema = "PST_BUSINESS") 
public class PstBusinessDomain extends PstAbstractBaseMappedEntity { 

के रूप में सिंह ने कहा, इस रणनीति के क्षेत्र में टिप्पणी के लिए काम करता है और यह भी कक्षा में।

संबंधित मुद्दे