@Data
@Entity
@Table(name = "member")
public class MemberEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@OneToMany
@JoinColumn(name = "memberId")
private List<PhoneEntity> phoneEntities;
}
@Data
@Entity
@Table(name = "phone")
public class PhoneEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private Integer memberId;
}
@Repository
public interface MemberRepository extends JpaRepository<MemberEntity, Integer> {
@Query("select m from MemberEntity m join fetch m.phoneEntities where m.id=?1")
MemberEntity findByIdWithPhone(Integer id);
}
создать отношение OneToMany от Member
до Phone
я пытаюсь выбрать Member
получить соединение с Phone
, используя @Query("select m from MemberEntity m join fetch m.phoneEntities where m.id=?1")
Запрос
, этот запрос созданкак в запросе my-sql
SELECT
memberenti0_.id as id1_0_0_,
phoneentit1_.id as id1_1_1_,
phoneentit1_.member_id as member_i2_1_1_,
phoneentit1_.member_id as member_i2_1_0__,
phoneentit1_.id as id1_1_0__
from member memberenti0_
inner join phone phoneentit1_ on memberenti0_.id=phoneentit1_.member_id
where memberenti0_.id=?
и результат MemberEntity
не равен нулю (это означает, что вставка и внутреннее объединение работают!), но MemberEntity#phoneEntities
всегда равно нулю
я пытаюсьизменить List<PhoneEntity>
Collections<PhoneEntity>
Set<PhoneEntity>
не работает весь тип коллекции.
Я сомневаюсь, что столбец в таблице Phone дважды вызывает в сгенерированном запросе (member_i2_1_1_, member_i2_1_0__), но я не знаю почему.