blob: 5bbd2c48e9d5d8461ec9853bd3b970dc2d1d71e4 [file] [log] [blame]
##macro joinColumn
#macro (joinColumn $column $referencedColumn)
#set ($members = "name=$customizer.convertToJavaStringLiteral($column.joinColumnName)")
#if (!$referencedColumn.primaryKey || $referencedColumn.partOfCompositePrimaryKey)
#set ($members = "$members referenced-column-name=$customizer.convertToJavaStringLiteral($referencedColumn.name)")
#end
<join-column $members/>
#end
##macro inverseJoinColumn
#macro (inverseJoinColumn $column $referencedColumn)
#set ($members = "name=$customizer.convertToJavaStringLiteral($column.joinColumnName)")
#if (!$referencedColumn.primaryKey || $referencedColumn.partOfCompositePrimaryKey)
#set ($members = "$members referenced-column-name=$customizer.convertToJavaStringLiteral($referencedColumn.name)")
#end
<inverse-join-column $members/>
#end
##
##
#### JoinTables
#if ($role.association.joinTable)
#set ($joinTable = $role.association.joinTable)
<join-table name=$customizer.convertToJavaStringLiteral(${joinTable.joinTableAnnotationName})>
#foreach ($column in $role.referrerColumns)
#set ($referencedColumn = $role.getReferencedColumn(${column.name}))
##$referencedColumn is the column in the join table
#joinColumn($referencedColumn $column)
#end
#foreach ($column in $role.referencedColumns)
#set ($referencedColumn = $role.getReferrerColumn(${column.name}))
##$referencedColumn is the column in the join table
#inverseJoinColumn($referencedColumn $column)
#end
</join-table>
#### JoinColumn
#else
#if ($role.referrerColumns.size() == 1)
#set ($column = $role.referrerColumns.get(0))
#set ($referencedColumn = $role.getReferencedColumn(${column.name}))
#set( $isDefaultJoinColumnName = $column.isDefaultJoinColumnName( ${role.propertyName}))
#if (! $isDefaultJoinColumnName)
#joinColumn($column $referencedColumn)
#end
#### JoinColumns
#else
#foreach ($column in $role.referrerColumns)
#set ($referencedColumn = $role.getReferencedColumn(${column.name}))
#joinColumn($column $referencedColumn)
#end
#end
#end