条令使用策略NONE设置条目ID



我在这里回答这个问题当使用";AUTO";策略

但我似乎无法在我的应用程序上使用它。

我的实体供应商订单交付:

class SuppliersOrdersDeliveries
{
/**
* @var integer
*
* @ORMColumn(name="supplier_order_id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="NONE")
*/
private $supplierOrderId;
{...}
}

主密钥是

supplier_order_id

YAML文件:

id:
supplierOrderId:
type: integer
nullable: false
unsigned: true
comment: 'Supplier order ID'
id: true
column: supplier_order_id
generator:
strategy: NONE

这就是我如何将数据持久化到DB:中

$dateTimeDeliveryTerm = new DateTime($generalDeliveryTerm);
$delivery = new DoctrineEntitiesSuppliersOrdersDeliveries();
$delivery->setGeneralDeliveryTerm($dateTimeDeliveryTerm);
$delivery->setSupplierOrderId($supplier_order['supplier_order_id']);
$delivery->setCmsUserId($this->cmsusers->get('id'));
$this->eMgr->getClassMetaData(get_class($delivery))->setIdGenerator(new DoctrineORMIdAssignedGenerator());
$this->eMgr->getClassMetaData(get_class($delivery))->setIdGeneratorType(DoctrineORMMappingClassMetadata::GENERATOR_TYPE_NONE);
$this->eMgr->persist($delivery);
$this->eMgr->flush();

问题是,在supplier_order_id变量处插入时,我仍然得到null。

此外,我试图在YAML和实体文件上将策略设置为NONE,但错误仍然存在,因为我稍后会使用setIdGeneratorType函数更改类型。

我不希望supplier_order_id自动递增或其他任何事情,我需要自己设置它。

有什么想法吗?

通过在交付实体中设置一个SupplierOrder对象而不是只放入简单的ID值来解决此问题。正如@Cerad在上面的评论中所说。

$delivery->setSupplierOrder($supplierOrder); 

相关内容

  • 没有找到相关文章

最新更新