Doctrine2注释问题

时间:2012-06-06 18:09:47

标签: orm doctrine-orm

我有一个使用Doctrine 2.0的项目,效果很好。我尝试升级到2.2.2,但是我注意到了一些差异:

/ **  *实体\日志  *  * @ORM \ Table(name =“log”)  * @ORM \ Entity(repositoryClass =“Repositories \ LogRepository”)  * /

它是如何在2.2.2中显示的。

但这是它在2.0.x中的显示方式:

/ **  *实体\日志  *  * @Table(name =“log”)  * @Entity(repositoryClass =“Repositories \ LogRepository”)  * /

如果我转换2.2.2,看起来像2.0,一切都很好,它加载,并在缓存中有一个对象的副本。但是,当我不管它时,我得到了这个错误:

申请路径:/ www / sites / diracianbilling-repository / trunk / application
致命错误:未捕获的异常'Doctrine \ ORM \ Mapping \ MappingException',消息'Class Entities \ Log不是有效实体或映射超类。在/usr/share/php/Doctrine/ORM/Mapping/MappingException.php:147 堆栈跟踪:

1 个答案:

答案 0 :(得分:1)

我猜你是从数据库生成实体的。

Doctrine 2.2.2由于某种原因生成了这些本身无法解析的注释。这显然是一个错误。

作为一种解决方法,您可以配置生成器以提供2.0样式的注释。使用solution from dminer并在生成之前添加以下行:

$generator->setAnnotationPrefix("");