मैं एक ऐसी प्रणाली तैयार कर रहा हूं जिसमें उपयोगकर्ताओं के बीच पोस्ट/चर्चाएं टिकट बनने के लिए अपग्रेड की जा सकें। एक विशेष स्थान पर मैं एक-से-एक वैकल्पिक संबंध बनाने की कोशिश कर रहा हूं लेकिन कुछ मुद्दों पर चल रहा हूं। स्पॉटलाइट में इकाइयों का एक संघीय संस्करण नीचे दिया गया है।Grails/GORM: एक-से-एक वैकल्पिक संबंध बनाना
नियम:
- एक पोस्ट टिकट बन सकता है यदि आवश्यक हो। (वैकल्पिक)
- एक टिकट में एक पोस्ट होना चाहिए। (अनिवार्य)
Post.groovy
class Post {
String title
String description
String postedBy
Ticket ticket
static hasMany = [comments: Comment]
static constraints = {
title(blank:false)
description(blank:false)
postedBy(blank:false)
ticket (nullable:true,unique:true)
}
}
Ticket.groovy
class Ticket {
String title
String description
String postedBy
Post post
static hasMany = [responses: Response]
static constraints = {
title(blank:false)
description(blank:false)
postedBy(blank:false)
post (nullable:false,unique:true)
}
}
यह कुछ हद तक काम करता है। मैं कर सकते हैं:
- एक पोस्ट टिकट छोड़ने का श्रेय अशक्त बनाएं और जब पोस्ट एक टिकट
- मैं स्पष्ट रूप से माता पिता टिकट को इंगित करने के पोस्ट के टिकट विशेषता सेट कर सकते हैं बनने के लिए उन्नत बनाया है।
हालांकि, यह मानचित्रण डोमेन स्तर पर लागू नहीं किया गया है। यह ऐसी स्थिति के लिए जगह छोड़ देता है जहां टिकट 1 पोस्ट 1 पर इंगित करता है, लेकिन पोस्ट 1 अंक इसके बजाय टिकट 2 पर जाता है।
मैं टिकट कक्षा में एक static hasOne = [post: Post]
उपयोग करने की कोशिश, लेकिन बाद में पता चला कि यह पोस्ट कक्षा में एक static belongsTo = [ticket: Ticket]
की उपस्थिति अनिवार्य बनाता है और यह एक अनिवार्य 1 से 1 संबंध जो मैं क्या कर रहा हूँ नहीं है हो जाता है खोज रहे हैं
क्या इस परिदृश्य में 1-से-1 वैकल्पिक मैपिंग प्राप्त करने का कोई तरीका है? कोई भी पॉइंटर्स सबसे उपयोगी होगा।
अगर आपकी संतुष्टि का उत्तर दिया गया है तो कृपया प्रश्न बंद करें। धन्यवाद! :-) – sbglasius
यह काम नहीं करता है। मुझे नहीं लगता कि 1-1 बनाया जा सकता है। मुझे शायद इसे असंभव के रूप में बंद करना चाहिए? –