새 서버에 내 projet을 배포했는데 "SQLSTATE [23000] : 무결성 제약 조건 위반 : 1452 자식 행을 추가하거나 업데이트 할 수 없습니다 : 외래 키 제약 조건이 실패합니다"오류가 발생하면 내가 상속 클래스를 삽입하려고 :Doctrine2 상속 - 1452 : 무결성 제약 조건 위반
/**
* @ORM\Table(name="prosante")
* @ORM\Entity
*/
class ProSante extends Base
{
/**
* @ORM\Column(type="string")
*/
protected $firstName;
}
/**
* @ORM\Table(name="base")
* @ORM\Entity(repositoryClass="Test\MyBundle\Entity\BaseRepository")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({"base" = "Base",
* "prosante" = "ProSante",
* "pharmacie" = "Pharmacie"})
*/
abstract class Base
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
}
로그 :
[2012-06-11 15:42:46] doctrine.DEBUG: INSERT INTO base (name) VALUES (?) ({"1":"Blabla"}) [] []
[2012-06-11 15:42:46] doctrine.DEBUG: INSERT INTO prosante (id, firstname) VALUES (?, ?) ({"1":"0","2":"PATRICK"}) [] []
내가 로컬 호스트에 같은 INSERT를 수행 할 때 오류가 표시되지 않기 때문에 어떻게 해야할지 모르겠어요.
EDIT "SELECT LAST_INSERT_ID();"를 선택하십시오. 수동으로 내 "베이스"내 데이터베이스에 삽입 한 후 0 반환하지 않는, 이해가 안 돼요.
해결 방법 드라이버 문제로, 변경하고 작동합니다.
당신이 문제를 설명 할 수 ..
@MappedSuperclass
그리고 당신은 안전하게 다른 엔티티로 확장 할 수 있습니다 : 이 단순히로 주석을 수행하려면? 나는 똑같은 것을하고있다. – Nate