1
當我在兩個實體之間進行INNER JOIN(由ManyToMany關係連接)doctrine說找不到關係machine_table_for_base_model:SQLSTATE[42P01]: Undefined table: 7 ERROR: the relation "machine_table_for_base_model" does not exist
。爲什麼會發生?Doctrine2使用PostgreSQL的ManyToMany關係:「SQLSTATE [42P01]:未定義的表:7錯誤:關係不存在」
我有一個associative table定義如下:
<!-- language: lang-sql -->
CREATE TABLE machine_table_for_base_model (
id_machine_table integer NOT NULL,
id_base_model integer NOT NULL,
);
ALTER TABLE ONLY machine_table_for_base_model
ADD CONSTRAINT machine_table_for_base_model_pkey PRIMARY KEY (id_machine_table, id_base_model);
ALTER TABLE ONLY machine_table_for_base_model
ADD CONSTRAINT machine_table_for_base_model_ibfk_1 FOREIGN KEY (id_machine_table) REFERENCES machine_table(id) ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED;
ALTER TABLE ONLY machine_table_for_base_model
ADD CONSTRAINT machine_table_for_base_model_ibfk_2 FOREIGN KEY (id_base_model) REFERENCES base_model(id) ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED;
當我執行關聯表的學說映射我有類似的東西:
Package\MyBundle\Entity\MachineTable:
type: entity
schema: techguide
table: machine_table
indexes:
IDX_8386B61E3C5569AA:
columns:
- edit_user
id:
id:
type: integer
nullable: false
options:
unsigned: false
id: true
generator:
strategy: SEQUENCE
fields:
description:
type: string
nullable: false
length: 200
options:
fixed: false
labelsDimensions:
type: text
nullable: false
length: null
options:
fixed: false
column: labels_dimensions
editDate:
type: datetime
nullable: false
options:
default: now
column: edit_date
manyToOne:
editUser:
targetEntity: Package\SupportBundle\Entity\Account
cascade: { }
fetch: LAZY
mappedBy: null
inversedBy: null
joinColumns:
edit_user:
referencedColumnName: id
orphanRemoval: false
manyToMany:
idBaseModel:
targetEntity: BaseModel
cascade: { }
fetch: LAZY
mappedBy: null
inversedBy: idMachineTable
joinTable:
name: machine_table_for_base_model
joinColumns:
-
name: id_machine_table
referencedColumnName: id
inverseJoinColumns:
-
name: id_base_model
referencedColumnName: id
orderBy: null
lifecycleCallbacks: { }