##included template. Generates the @ManyToMany annotation.
##Assumes that the context has a "role" object representing the generated AssociationRole
##
#if ($role.association.bidirectional && !$role.isReferrerRole())##the owning side (either side for many-to-many)
#set ($members = $customizer.appendAnnotation("", "mappedBy", $role.oppositeRole.propertyName, true))
#set ($members = $customizer.appendAnnotation($members, "cascade", $customizer.genCascades($role), false))
#if($customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable)!="FetchType.LAZY")
#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))
#end
#if($members!="")
	@ManyToMany($members)
#else
	@ManyToMany
#end
#else
#set ($members = $customizer.appendAnnotation("", "cascade", $customizer.genCascades($role), false))
#if($customizer.genFetch($role.referrerTable)!="" && $customizer.genFetch($role.referrerTable)!="FetchType.LAZY")
#set ($members = $customizer.appendAnnotation($members, "fetch", $customizer.genFetch($role.referrerTable), false))
#end
#if($members!="")
	@ManyToMany($members)
#else
	@ManyToMany
#end
#parse("join.vm")
#end