Java 弹簧jpa@OneToMany单向始终为空
结果Java 弹簧jpa@OneToMany单向始终为空,java,hibernate,jpa,spring-data-jpa,Java,Hibernate,Jpa,Spring Data Jpa,结果MemberEntity不为null(这意味着插入和内部连接是有效的!),但MemberEntity#phoneEntities始终为null 我正在尝试更改列表集合集合所有集合类型都不起作用 在生成的查询中,我两次怀疑Phone table call中的列(member_i2_1_1_,member_i2_1_0_),但我不知道原因。您必须更正映射,如下所示: SELECT memberenti0_.id as id1_0_0_, phoneentit1_.id as id1_1_1_,
MemberEntity
不为null(这意味着插入和内部连接是有效的!),但MemberEntity#phoneEntities
始终为null
我正在尝试更改列表
集合
集合
所有集合类型都不起作用
在生成的查询中,我两次怀疑Phone table call中的列(member_i2_1_1_,member_i2_1_0_),但我不知道原因。您必须更正映射,如下所示:
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#getPhoneEntities()`并得到null???而且
memberId
在PhoneEntity
中没有映射到memberId
,该方法返回null。所以你在detach entity上调用它。你怎么会指定了@JoinColumn(name=“memberId”)
但是SQL使用列phonentit1.member\u id
?这个查询怎么能执行呢?更不用说返回错误的数据了?在PhoneEntity
中没有关系是不行的?单向关系是完全有效的,我不认为这是问题的原因。
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=?
@Data
@Entity
@Table(name = "member")
public class MemberEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@OneToMany(
mappedBy = "member"
)
private List<PhoneEntity> phoneEntities;
}
@Data
@Entity
@Table(name = "phone")
public class PhoneEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY) // Or Eager
@JoinColumn(name = "member_id")
private MemberEntity member;
}
@Query("select m from MemberEntity m where m.id=?1")