学说多对一关系持续经营
2022-08-30 20:56:53
我有一个故事表和用户表。故事表中的列用户标识是一个外键,它引用用户表中的 id。
我已经设置了关系,即用户可能有许多故事存储在故事表中。我已经创建了两个表的实体。
但是,如果尝试仅将操作持久化到故事表,则会询问新用户条目的详细信息。
我的目标是用现有的.userId
我在这里发布错误:
通过关系“Story#_userId”找到一个新实体,该关系未配置为级联实体的持久化操作:User@0000000038960c50000000008ea93852。要解决此问题:在此未知实体上显式调用 EntityManager#persist() 或配置级联,在映射中保留此关联,例如 @ManyToOne(..,cascade={\“persist\”})。
我在实体中设置了多对一关系:Story
/**
* @ManyToOne(targetEntity="User", inversedBy = "_story" )
* @JoinColumns({
* @JoinColumn(name="user_id", referencedColumnName="id")
* })
*/
private $_userId;
我检查了数据库架构,它显示关系设置正确。所以我已经完成了故事插入过程。
$user = new User();
$user->setUserId($id);
$story = new Story();
$story->setContent("....");
$story->setUserid($user);
$this->em->persist($story);
$this->em->flush();