Помимо отношений «многие ко многим» доктрина1 не работает с первичным ключом для нескольких столбцов. Но если вы хотите использовать отношения «многие ко многим», используйте это так:
BlogPost:
columns:
user_id: integer
title: string(255)
body: clob
relations:
User:
local: user_id
foreign: id
type: one
foreignType: one
foreignAlias: BlogPosts
Tags:
class: Tag
foreignAlias: BlogPosts
refClass: BlogPostTag
local: blog_post_id
foreign: tag_id
Tag:
columns:
name: string(255)
BlogPostTag:
columns:
blog_post_id:
type: integer
primary: true
tag_id:
type: integer
primary: true
relations:
BlogPost:
local: blog_post_id
foreign: id
foreignAlias: BlogPostTags
Tag:
local: tag_id
foreign: id
foreignAlias: BlogPostTags
Если вы НЕ хотите / должны использовать отношение «многие ко многим», лучше использовать уникальный ключ для нескольких столбцов.