Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 弹簧jpa@OneToMany单向始终为空_Java_Hibernate_Jpa_Spring Data Jpa - Fatal编程技术网

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")