Doctrine2生成INSERT语句,覆盖SQL默认值

时间:2013-09-25 16:24:24

标签: php postgresql symfony doctrine-orm

我遇到类似问题in this post,但提供的解决方案在我的案例中不起作用。这是问题......

我正在使用Symfony2,它将Doctrine2用于ORM,将新用户插入数据库。当我使用object方法插入用户时,会将空值插入到我不想插入任何内容的字段中(因此将插入默认值)。

这就是我想要生成的INSERT语句的样子:

INSERT into mytable (name) VALUES (?)
array(1) {
  [1]=>
  string(6) "myName"
}

这就是Doctrine创建INSERT语句的方式

INSERT into mytable (name, token, creationDate) VALUES (?,?,?)
array(3) {
  [1]=>
  string(6) "myName"
  [2]=>
  NULL
  [3]=>
  NULL
}

令牌应具有使用postgresql的uuid_generate_v5方法定义的默认值。 creationDate的默认值为now()。插入doctrine的NULL值将覆盖这些默认值。

有没有办法让学说忽略插入的某些字段?

1 个答案:

答案 0 :(得分:1)

尝试在列注释中明确使用nullable = false属性。