如何将doctrine2列时间类型映射到oracle datetime类型

时间:2014-10-07 08:27:19

标签: oracle symfony doctrine-orm

您尝试使用doctrine 2 ORM从oracle数据库检索数据时遇到此错误:

Could not convert database value "2000-01-01 00:00:00" to Doctrine Type time. 
Expected format: 1900-01-01 H:i:s 


The type of the requested column is  time. but oracle stores it in DateTime format and it 
set date to 2000-01-01. Doctrine retrieve the time using mask "1900-01-01".

当我使用Doctrine(Symfony)插入新实体时,它会通过,但是当我使用Oracle SqlDeveloper在数据库表中插入新的recored时,它将无法工作。

如何解决这个问题?

我使用symfony Framework 2.4.3 + Doctrine

修改

这是输出异常:

2. at ConversionException ::conversionFailedFormat ('2000-01-01 02:00:00', 'time', '1900-01-01 H:i:s')
in /var/www/saga-print/shared/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeType.php at line 67

3. at TimeType ->convertToPHPValue ('2000-01-01 02:00:00', object(OraclePlatform))
in /var/www/saga-print/shared/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php at line 330  

当我将年份更改为1900时,它可以正常工作。

这是属性映射

/**
 * @var \DateTime
 *
 * @ORM\Column(name="heure_livraison", type="time", nullable=true)
 *
 * @Assert\Time(message="Le champ 'Heure de livraison' n'est pas une heure valide.")
 */
protected $heureLivraison;

0 个答案:

没有答案