0

単純なツリー構造に奇妙な問題があります..

class CourseCategory {
  /** @Id @Column(name="Id", type="integer", unique=true) 
   *  @GeneratedValue
   */
  private $id = null;

  /** @Column(name="Name", length=2000) */
  private $name;

  /**
   * @OneToOne(targetEntity="CourseCategory")
   * @JoinColumn(name="ParentId", referencedColumnName="Id", nullable=true)
   **/
  private $parent;

  /** @Column(name="Slug", length=255) */
  private $slug;

  /** @Column(name="PageTitle", length=2000) */
  private $pageTitle;

  /** @Column(name="Order", type="integer") */
  private $order;

  public function __construct($name, $parent, $slug, $pageTitle, $order) {
    $this->name = $name;
    $this->parent = $parent;
    $this->slug = $slug;
    $this->pageTitle = $pageTitle;
    $this->order = $order;
  }
}

新しいカテゴリの追加:

$category = new CourseCategory($name, $parentCategory, $slug, $pageTitle, 
        $em->createQuery('SELECT COUNT(c.id) FROM Entity\CourseCategory c')->getSingleScalarResult() + 1);
      $em->persist($category);
      $em->flush();

このコードはSyntax error or access violation: 1064例外で失敗します。どういうわけか、文字列を ParentId フィールドに追加しようとします:

check the manual that corresponds to your MySQL server version for the right syntax to use near 'Order, ParentId) VALUES ('123', '123', '123', 47, '1')

なぜそれが起こるのか誰か知っていますか?ありがとうございました

4

0 に答える 0