2014-08-30 1 views
0

게임에 대한 사용자 평점을 저장하려고합니다.Doctrine oneToMany without mapped - YML

예 : Battlefield 4는 게임이며 User는 사용자이며 사용자는이 게임에 대해 10 개의 평점을 받았습니다.

oneToMany에 대해 매핑 된 속성을 사용하지 않고 어떻게하면됩니까?

(사용자 및 게임 orm.yml 파일) 내 YML : 난 당신이 모든 평가에 로딩에 대한 걱정 때문에 관계를 매핑하고 싶지 않은 추측하고있어

oneToMany: 
    ratings: 
     targetEntity: CS\GamingBundle\Entity\Rating 
     cascade: ["all"] 
     fetch: EXTRA_LAZY 
+0

당신이 원하는 것을 잘 이해한다면 (oneToMany 관계없이 등급을 저장하는 대안을 원한다면) 사용자 정의 엔티티에'ratings' 속성 (db에 대한 배열)을 추가하여 직접 저장할 수 있습니다. –

+0

나는 분명히 말할 수 없어서 미안합니다. 나는 테이블에 등급을 유지하려고합니다 : user_id, game_id 및 등급 필드가있는 game_user_ratings. 나는이 세 엔티티 (사용자, 게임, 등급) 사이의 관계를 만들고 싶다. oneToMany와 함께 mappedBy를 사용하지 않고 수행하는 방법을 모르겠습니다. –

답변

0

때를 사용자를로드하십시오 (따라서 fetch: EXTRA_LAZY)? EXTRA_LAZY를 사용하면 여분의 오버 헤드가 없으므로 걱정할 필요가 없습니다.

왕복 oneToMany 관계없이 Rating 엔티티에 manyToOne 관계를 추가하기 만하면됩니다.

그렇지 않으면 관리자 + 저장소를 만들고 모든 것을 수동으로해야합니다. IMO 문제가 ORM을 사용하는 것만 큼 가치가 없습니다.

관련 문제