在Hibernate中获取错误的元素数量列表

我有一个类,其中包含一个对象列表,该对象列表已映射到另一个表。

public class MyMethod implements Serializable {

    @Id
    private String id = UUID.randomUUID().toString();

    @Column
    private String client;

    ....


    @OneToMany(mappedBy = "accessMethod",cascade = CascadeType.ALL,orphanRemoval = true,fetch = FetchType.EAGER)
    @OrderColumn(name = "field_index")
    private List<MyField> myFields = new ArrayList<>();


}

列表中的另一个类是

@Entity
@Table(name = "My_fields")
public class MyField implements Serializable {


    @Id
    private String id = UUID.randomUUID().toString();

    ....

    private String key;



    private Boolean isOptional;

    @Embedded
    private FieldLength length;

    @Column(name = "field_index")
    private Integer fieldIndex = 0;

}

问题是,如果数据库上我的字段的记录如下所示,当我查询id为= 1的myMethod时,所属类中的myField列表包含3个元素而不是2个,并且索引1为空。

          id      |   my_method_id | is_optional | field_index
+---------------------------------------------------------------+
  xxxxxxxxxxxxxxx |    1           |   false     |         2
  yyyyyyyyyyyyyyy |    1           |   false     |         0

所以,尽管有两个记录与my_method_id = 1相关联,所以Hibernate为什么用3个元素填充列表。如果我在数据库上将field_index 2更新为field_index = 1,则它将正常工作,并且list仅包含2个元素。知道这里出了什么问题吗?

wang19898312as 回答:在Hibernate中获取错误的元素数量列表

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3145949.html

大家都在问