ポリモーフィズムでの関連付け
GORMは has one
と has many
のポリモーフィズムでの関連付けをサポートします。自身のエンティティのテーブル名はポリモーフィック型のフィールドに、主キーの値はポリモーフィックフィールドにそれぞれ保存されます。
polymorphic:<value>
のように指定すると、デフォルトでは型とIDのカラムの名前の先頭に<value>
が付与されます。
値は、複数形に変換されたテーブル名になります。
type Dog struct { |
以下のGORMタグを使用して、ポリモーフィズムに関するプロパティを個別に指定できます。
polymorphicType
: カラムの型を指定します。polymorphicId
:カラムのIDになるフィールドを指定します。polymorphicValue
: 指定した型の値を指定します。
type Dog struct { |
以上は一対多のリレーションの例ですが、一対一のリレーションの場合にも同様の原則が適用されます。