Doctrine2 @JoinColumn 注释上的强制类型而不使用 ColumnDefinition

cal*_*a-c 5 orm types doctrine join symfony

我有一个遗留数据库,它必须在数据类型、列名和大小等方面完全保持原样。使用额外的列注释,关系变得无用。像这样的 columnDefinition :

@ORM\JoinColumn(name="user_contact", referencedColumnName="contact_id", nullable=false, columnDefinition="int(11) DEFAULT '0'")
Run Code Online (Sandbox Code Playgroud)

更改脚本始终运行,因此它不是一个好的解决方案。有什么方法可以指定 JoinColumn 的类型、长度(大小)和默认值?

ste*_*ddy -3

JoinColumn注释用于在实体之间创建关系的过程中使用,而不是用于创建新列。从文档中,

此注释用于 @ManyToOne、@OneToOne 字段中的关系上下文以及嵌套在 @ManyToMany 内的 @JoinTable 的上下文。


使用 **column** 注释创建一个新列。看这个:
/**
 * @var integer
 *
 * @ORM\Column(name="user_contact", type="integer", options={"default":0})
 */
private $userContact;
Run Code Online (Sandbox Code Playgroud)

更新 有关列和连接列注释参考的最新文档可以在此处找到: https: //www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/annotations-reference.html