我在Symfony 2中擁有以下物體,其ID由Oracle序列生成:
我在Symfony 2中擁有以下物體,其ID由Oracle序列生成。
namespace PSBundleEntity。
use DoctrineORMMapping as ORM;
/**。
* @ORMTable(name="CONTRATO")
* @ORMEntity
* @ORMEntity(repositoryClass="PSBundleEntityContratoRepository" )
*/
class Contrato
{
/**。
* @var integer
* @ORMColumn(name="ID_CONTRATO", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="SEQUENCE")
* @ORMSequenceGenerator(sequenceName="SID_CONTRATO", allocationSize=1, initialValue=1)
*/
private $idContrato;
//其他欄位...。
但是當我這樣做時:
$entityContrato = new Contrato()。
//設定一些欄位$em->persist($entityContrato) 。
我得到:
PSBundleEntityContrato型別的物體缺少一個指定的ID,用于 欄位'idContrato'的分配ID。這個物體的識別符號生成策略要求ID欄位被填充。 物體的識別符號生成策略要求ID欄位必須在 EntityManager#persist()被呼叫之前填充。如果你想自動生成 的識別符號,你需要相應地調整元資料映射。
我知道SID_CONTRATO的定義很好,因為如果我選擇了NEXTVAL,它就能作業:
我錯過了什么?如果有任何關于這個問題的線索,我們將不勝感激,我的相關依賴關系是:
"php": "7.2",
"symfony/symfony": "2.3.42"、
"doctrine/orm": "2.3.x-dev"、
"doctrine/doctrine-bundle": "1.2.0",
Doctrine配置(來自config/config.yml,我沒有doctrine.yaml檔案):
# Doctrine Configuration。
doctrine:
dbal:/span>
driver: oci8
port: 1521
dbname: ORCL
host:
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/310780.html
標籤:

