学说生成的value =无需插入id的null



这是我的实体:

class Foo
{
    /**
     * @var int
     * @ORMId
     * @ORMColumn(name="custom_id", type="integer")
     * @ORMGeneratedValue(strategy="NONE")
     */
    private $customId;
    public function __construct( $customId )
    {
        $this->customId = $customId;
    }
}

现在我正在生成一个新实例

$foo = new Foo(123);
dump($foo); // shows customId: 123
$em->persist($foo);
$em->flush();
$em->clear();

执行'插入table_foo时发生了例外 (custom_id,foo,bar)value(?,?,?)'with params [null,null, null]:

SQLSTATE [23000]:违规完整性约束:1048列 'custom_id'不能为null

我知道它不会是无效的,这就是为什么我设置它。为什么学说会用零值覆盖该值?策略是,并且发生在构造函数中...我在这里缺少什么?

有点晚一些,但是如果有人搜索它,您需要使用自定义值生成器(只需将您的内容放入插入语句)

/**
 * @var int
 * @ORMId
 * @ORMColumn(name="custom_id", type="integer")
 * @ORMGeneratedValue(strategy="CUSTOM")
 * @ORMCustomIdGenerator(class="DoctrineORMIdAssignedGenerator")
 */
private $customId;

删除

@ORMGeneratedValue(strategy="NONE")

相关内容

  • 没有找到相关文章

最新更新