클래스 표 상속 전략을 사용하여 D2로 상속 매핑을 구현하고 있습니다. 나는 다음과 같은 코드 블록Doctrine의 판별 자 문제점 2
namespace Zain\Entity;
/**
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="Specialty", type="string") // what other types exist?
* @DiscriminatorMap({"person" = "\Zain\Person", "employee" = "\Staff\Entities\Employee"})
*
* @Table(name="db_One.tblPerson")
*
*/
class Person
{
...
과 사람이라는 부모 클래스를 가지고 그리고 난 다음 코드를 사용하여 자식 클래스라는 이름의 직원이 있습니다
namespace Staff\Entities;
/**
* Description of Employee
* @Entity
* @Table(name="db_Two.tblEmployee")
*
*/
class Employee extends \Zain\Entity\Person
{
...
MySQL의 테이블 : tblPerson는 특수라는 차별 열이
`Specialty` varchar(45) NOT NULL
직원의 인스턴스가 있고이를 유지하려고 할 때 문제가 발생합니다.
Employee 인스턴스가 지속되면 employee 인 employee (string)가 Person 테이블의 Specialty 열에 저장 될 것으로 예상됩니다. 그러나 이것은 발생하지 않았습니다. 나는이 오류가 값이 생성되고 EntityManager에 의해 사용되는 SQL 문에서 특수 열의 전달되지되고 있음을 의미 이해
Message: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'specialty' cannot be null
: 나는 오류 메시지가 발생합니다. 그리고 tblPerson> Specialty Column에 Not Null 제약 조건을 설정했습니다.
not null 제약 조건을 제거하면이 작업을 수행 할 수 있지만 그 목적을 상회합니다. 이것을 도와 주면서, 지속 호출 중에 엔티티 관리자가 사용/생성 한 SQL 문을 검색하는 방법을 보여 주시겠습니까?
답을 찾기 위해 며칠 동안 끝내는 것이 좋을 것입니다. 다시 한번 감사드립니다.
그건 분명히 '마술'을 완료했습니다 - 고마워요. –
뛰어난 요청은 다음과 같습니다 : 이것을 돕기 위해, 생성 된 SQL 문을 검색하는 방법을 보여 주시겠습니까? 끊임없는 전화? –
@pi - doctrine 용 SQL Logger를 구성해야합니다. 여기 세부 정보 : http://www.doctrine-project.org/docs/orm/2.0/en/reference/configuration.html#sql-logger-optional – rojoca