ユーザ間の投稿/ディスカッションをアップグレードしてチケットにするシステムを設計しています。 1つの特定の場所では、私は1対1のオプションの関係を作成しようとしていますが、特定の問題にぶつかっています。スポットライト内のエンティティの要約を以下に示します。Grails/GORM:1対1のオプションの関係を作成する
ルール:必要に応じて
- A Postはチケットになることができます。 (オプション)
- チケットには投稿が必要です。 (必須)
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)
}
}
これはある程度機能します。私がすることができます:
- がnullの場合属性とポストは
- チケットになるようにアップグレードされたとき、私は明示的に親チケットを指すようにポストのチケット属性を設定することができ、チケットを残してポストを作成します。
ただし、このマッピングはドメインレベルでは適用されません。 Ticket1がPost1を指すが、Post1がTicket2を指し示す状況の余地が残る。
私はチケットクラスのstatic hasOne = [post: Post]
を使用してみましたが、後でそれがポストクラスでstatic belongsTo = [ticket: Ticket]
の存在を義務付け、これは私は何でない必須の1対1の関係になっていることを学びました探している。
このシナリオでは、この1対1のオプションのマッピングを実現する方法はありますか?どんなポインタであれ、最も役立ちます。
ご質問にお答えいただければ、ご質問ください。ありがとう! :-) – sbglasius
これは動作しません。私は1-1が作成できるとは思わない。私はおそらくそれを未回答として閉じるべきでしょうか? –