我对学说实体映射有疑问。有一个基本的用户实体,我想创建一个 Friend 实体,由用户表的两个外键组成,友谊的第一个所有者和另一个。我尝试以这种方式( yaml )执行此操作,实体以正确的方式生成,但是当我使用学说方案更新创建数据库时,结果完全不同。
用户实体:
..\..\Entity\User:
type: entity
uniqueConstraints:
usernameCanonical:
columns: usernameCanonical
emailCanonical:
columns: emailCanonical
oneToMany:
owners:
targetEntity: Friend
mappedBy: owner
friends:
targetEntity: Friend
mappedBy: friend
和朋友实体:
..\..\Entity\Friend:
type: entity
table: friend
lifecycleCallbacks:
prePersist: [setCreated, setModified]
preUpdate: [setModified]
manyToOne:
owner:
targetEntity: User
inversedBy: friends
joinColumn:
name: user
referencedColumnName: id
onDelete: cascade
friend:
targetEntity: User
inversedBy: owners
joinColumn:
name: user
referencedColumnName: id
onDelete: cascade
这应该创建两个从朋友到用户的外来对象,而是创建一个像:
ALTER TABLE friend ADD CONSTRAINT FK_55EEAC618D93D649 FOREIGN KEY (user) REFERENCES users (id) ON DELETE CASCADEe