我有一个这样定义的映射超类:
/** @ORM\MappedSuperclass */
abstract class BaseEntity {
/**
* @var string $id
*
* @ORM\Column(name="id", type="string", length=32, nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @var datetime $dateCreated
*
* @ORM\Column(name="date_created", type="datetime", nullable=false)
*/
protected $dateCreated;
function __construct() {
$this->id = $this->generateId();
}
以及扩展它的子类。我得到这个例外:
General error: 1364 Field 'id' doesn't have a default value
在构造对象后,我对 getId 方法进行了回显,它返回了一个有效的字符串,所以不是这样。有趣的是,在将某些内容插入同一个表之前,我会进行查找查询。查找查询识别“id”字段,插入不识别但都识别 date_created 字段。会发生什么?