Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Doctrine2.3 dan kaskade OneToOne tampaknya tidak berfungsi

Oke ketemu solusinya:

/**
 * 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;

    ...
}

Pertama-tama saya harus menentukan mappedBy dan inversedBy (yang sudah saya coba sebelumnya tetapi ke arah yang salah - mappedBy di sisi pemilik, inversedBy di sisi terbalik). Saya juga berpikir bahwa sisi terbalik tidak perlu memiliki id terpisah dan saya mencoba menggunakan id dari sisi pemilik (User#id) sebagai kunci utama untuk yang satu ini juga.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabel database dinamis di Django

  2. kolom stempel waktu mysql

  3. Mengapa pernyataan NOT EXISTS bersarang ganda tidak dapat dihindari dalam SQL

  4. Menampilkan gambar dari database MySQL dalam tabel data JSF

  5. Bagaimana cara mengubah nilai innodb_buffer_pool_size di MySQL di Mac OS?