Database 原则2-使用数据库中的视图生成实体
是否可以使用原则2从数据库生成视图 我解释: 我的数据库包含一些我想使用的视图,但我不知道如何生成这些视图Database 原则2-使用数据库中的视图生成实体,database,view,doctrine-orm,Database,View,Doctrine Orm,是否可以使用原则2从数据库生成视图 我解释: 我的数据库包含一些我想使用的视图,但我不知道如何生成这些视图 在我的例子中,我有两个表和一个视图,视图在每个表中选择几个列,我只想将此视图放在项目的“实体”文件夹中。数据库视图目前不受Doctrine 2的支持,但它的性能可能非常差。自己尝试将视图映射为实体,并将其标记为@readOnly实体。对于对答案感兴趣的人: 我的回答基于以下几点: 例如,如果您有一个列为“Id”和“Name”的视图“a”: 在src/Name/YourBundle/Res
在我的例子中,我有两个表和一个视图,视图在每个表中选择几个列,我只想将此视图放在项目的“实体”文件夹中。数据库视图目前不受Doctrine 2的支持,但它的性能可能非常差。自己尝试将视图映射为实体,并将其标记为@readOnly实体。对于对答案感兴趣的人: 我的回答基于以下几点: 例如,如果您有一个列为“Id”和“Name”的视图“a”: 在src/Name/YourBundle/Resources/config/doctrine中,使用如下属性创建“A.orm.yml”:
Name\YourBundle\Entity\A:
type: entity
table: A
fields:
id:
id: true
type: integer
unsigned: false
nullable: false
column: id
generator:
strategy: IDENTITY
name:
type: string
length: 35
fixed: false
nullable: true
column: name
之后,在Name/YourBundle/Entity/A中创建A.php:
namespace Name\YourBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="A")
*/
class A {
/**
* @Id @Column(type="integer")
*/
private $id;
private $name;
public function getId() {
return $this->id;
}
public function getName() {
return $this->name;
}
}
而且。。。你可以用你的控制器调用你的视图。你的意思是在上下文中的视图吗?不,我的意思是,那种类型的视图。例如,我有一个数据库(toto),其中有两个表(tata et titi)和一个视图(viewTataTiti),它们在这两个表中选择结果。。。我只是想恢复这一观点。你在哪里看到的?你自己试试看。Doctrine2模式工具无法将视图识别为表,因为它是一个状态。我将在明天的工作中尝试。看最后一点,26.2.1,希望可能。。。实际上,不同RDM中的视图可能是可更新或可插入的(即,它们并不总是只读的)。例如,对于mysql:。由于使视图可更新或不可更新的不同RDM的标准是高度技术性的(并且是依赖性的),我认为Doctrine可能已经选择无论如何发送查询并让数据库拒绝查询…@VincentPazeller,
我认为Doctrine可能已经选择无论如何发送查询并让数据库拒绝查询…
。完全同意这对你有用吗?我在试着让它工作时遇到了一些问题。看这篇文章。这个答案完全错了,OP提出了一些不同的问题。