Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Doctrine2.3 và OneToOne thác vẫn tồn tại dường như không hoạt động

Ok, đã tìm ra giải pháp:

/**
 * User
 *
 * @ORM\Table("users")
 * @ORM\Entity
 */
class User extends UserEntity
{
    ...

    /**
     * @ORM\OneToOne
     * (
     *      targetEntity="UserPreferences",
     *      cascade={"persist", "remove"},
     *      inversedBy="user"
     * )
     */
    protected $userPreferences;
}

/**
 * @ORM\Table("user_preferences")
 * @ORM\Entity
 */
class UserPreferences extends UserPreferencesEntity
{
    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue
     */
    protected $id;

    /**
     * @var int
     *
     * @ORM\OneToOne(targetEntity="User", mappedBy="id", cascade={"persist", "remove"})
     */
    protected $user;

    ...
}

Trước hết, tôi phải chỉ định mappedBy và inversedBy (mà tôi đã thử trước đó nhưng sai hướng - mappedBy ở phía sở hữu, inversedBy ở phía nghịch đảo). Ngoài ra, tôi nghĩ rằng phía đảo ngược không cần phải có id riêng và tôi đã cố gắng sử dụng id của phía sở hữu (User # id) làm khóa chính cho bên này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn với nhiều thẻ

  2. Chọn N mục trước và M mục tiếp theo xung quanh id mục hiện tại

  3. Người theo dõi / cấu trúc cơ sở dữ liệu sau

  4. trong khi trên IDataReader.Read không hoạt động với trả về lợi nhuận nhưng foreach trên trình đọc thì

  5. MySQL chuyển đổi Bằng, Phút, Giây sang Độ thập phân