Grails GORM डेटाबेस में अमूर्त डोमेन कक्षाओं को जारी नहीं रखता है, जिससे बहुलक संबंधों में ब्रेक होता है। उदाहरण के लिए: org.hibernate.MappingException: तालिका दस्तावेज़ से एक संघ एक तुच्छ वर्ग को दर्शाता है: उपयोगकर्ता ... 25 अधिक 2009-11-GORM रिलेशनशिप में सार कक्षाएं
abstract class User {
String email
String password
static constraints = {
email(blank:false, nullable:false,email:true)
password(blank:false, password:true)
}
static hasMany = [membership:GroupMembership]
}
class RegularEmployee extends User {}
class Manager extends User {
Workgroup managedGroup
}
class Document {
String name
String description
int fileSize
String fileExtension
User owner
Date creationTime
Date lastModifiedTime
DocumentData myData
boolean isCheckedOut
enum Sensitivity {LOW,MEDIUM,HIGH}
def documentImportance = Sensitivity.LOW
static constraints = {
name(nullable:false, blank:false)
description(nullable:false, blank:false)
fileSize(nullable:false)
fileExtension(nullable:false)
owner(nullable:false)
myData(nullable:false)
}
}
की वजह का कारण बनता है 11 23: 52: 58,933 [मुख्य] ERROR mortbay.log - org.springframework.beans.factory. में स्थित है। बीनक्रिएशन अपवाद: नाम 'संदेश स्रोत' के साथ बीन बनाने में त्रुटि: बीन विफल होना; नेस्टेड अपवाद org.springframework.beans.factory.BeanCreationException: त्रुटि नाम 'लेनदेन प्रबंधक' नाम से बीन बनाना: बीन संपत्ति 'sessionFactory' सेट करते समय संदर्भ बीन 'सत्र फैक्टरी' को हल नहीं कर सकता; नेस्टेड अपवाद org.springframework.beans.factory.BeanCreationException: त्रुटि नाम 'सत्र फैक्टरी' के साथ बीन बनाना: इनिट विधि विफलता का आमंत्रण विफल रहा; नेस्टेड अपवाद org.hibernate.MappingException है: उपयोगकर्ता:: org.hibernate.MappingException: तालिका दस्तावेज़ से एक संघ एक तुच्छ श्रेणी को संदर्भित करता तालिका दस्तावेज़ से एक संघ एक तुच्छ वर्ग को दर्शाता है: उपयोगकर्ता
लेकिन इस परिदृश्य में, मैं किसी भी उपयोगकर्ता को किसी दस्तावेज़ को रखने की अनुमति देने के पॉलीमोर्फिक प्रभाव चाहता हूं, जबकि सिस्टम के प्रत्येक उपयोगकर्ता को परिभाषित भूमिकाओं में से एक में फिट करने के लिए मजबूर करना पड़ता है। इसलिए, उपयोगकर्ता को तुरंत तत्काल नहीं किया जाना चाहिए और सार बना दिया जाना चाहिए।
मैं एक गैर-अमूर्त उपयोगकर्ता वर्ग में भूमिकाओं के लिए एक enum का उपयोग नहीं करना चाहता, क्योंकि मैं विभिन्न भूमिकाओं में अतिरिक्त गुण जोड़ने में सक्षम होना चाहता हूं, जो कुछ संदर्भों में समझ में नहीं आ सकता है (मैं नहीं ' मैं एक एकल उपयोगकर्ता को नियमित रूप से नियोक्ता के लिए सेट सेट करना चाहता हूं जो किसी भी तरह से शून्य प्रबंधित समूह नहीं मिलता है)।
क्या यह Grails में एक बग है? क्या मैं कुछ भूल रहा हूँ?
मुझे आश्चर्य है कि एक सार वर्ग के लिए डीबी को बनाए रखने का क्या अर्थ होगा, क्योंकि वहां कुछ जारी रहना है (यानी, एक उदाहरण)। –
ठीक है, मैं उद्यम करता हूं कि एक सार वर्ग प्रारंभिक स्कीमा रूपरेखा है, खासकर अगर यह विरासत संबंध की जड़ पर है। इसलिए यदि मेरे पास उपयोगकर्ता-> नियमित कर्मचारी संबंध है, तो तालिका का नाम उपयोगकर्ता होना चाहिए और "वर्ग" के लिए एक कॉलम जोड़ा जाना चाहिए, जिसका प्रयोग मानक तालिका-प्रति-पदानुक्रम मॉडल को लाए जाने के लिए किया जाता है। –