Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
Spring JPA FetchType.LAZY集合是在JSON序列化期间获取的_Spring_Rest_Jpa_Spring Boot - Fatal编程技术网

Spring JPA FetchType.LAZY集合是在JSON序列化期间获取的

Spring JPA FetchType.LAZY集合是在JSON序列化期间获取的,spring,rest,jpa,spring-boot,Spring,Rest,Jpa,Spring Boot,oneToMany带注释的集合是在对相应控制器端点的rest调用期间获取的。集合是一个延迟获取列表 如何避免提取该集合? 这是一个典型的大型集合,除非明确请求,否则不应连接 提前谢谢 package xxx; import java.math.BigDecimal; import java.util.Calendar; import java.util.List; @Entity(name = "Ortaklik")

oneToMany带注释的集合是在对相应控制器端点的rest调用期间获取的。集合是一个延迟获取列表 如何避免提取该集合? 这是一个典型的大型集合,除非明确请求,否则不应连接

提前谢谢

    package xxx;

        import java.math.BigDecimal;
        import java.util.Calendar;
        import java.util.List;

        @Entity(name = "Ortaklik")
        // @Table(name="ortaklik",uniqueConstraints={@UniqueConstraint(columnNames={"id"})})
        @NamedQueries({
        @NamedQuery(name = "Ortaklik.findMaxOrtaklik", query = "SELECT o FROM Ortaklik o WHERE o.id=(SELECT MAX(o.id) FROM o WHERE o.ortak.id=:ortakid )") })
        @JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class,property="@ortaklikId")

        public class OrtaklikEntity {

            @Id
            @GeneratedValue(strategy = GenerationType.AUTO, generator = "seq_Ortaklik")
            @SequenceGenerator(sequenceName = "seq_Ortaklik", name = "seq_Ortaklik")
            private Long id;
            @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
            @JoinColumn(name = "ortak_id")
            @JsonBackReference
            private OrtakEntity ortak;
/**********************THIS IS THE MENTIONED COLLECTION****///////
            @OneToMany(mappedBy="ortaklik",fetch=FetchType.LAZY)
            private List<OngorulenAidatOdemePlanTaksitEntity> aidatList;

            public OrtaklikEntity() {
            }


            public List<OngorulenAidatOdemePlanTaksitEntity> getAidatList() {
                return aidatList;
            }

            public void setAidatList(List<OngorulenAidatOdemePlanTaksitEntity> aidatList) {
                this.aidatList = aidatList;
            }




        }

The inverse side of the relationship is as follows

    public class OngorulenAidatOdemePlanTaksitEntity implements Serializable, Comparable {

        // <editor-fold defaultstate="collapsed" desc="alanlar">
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO, generator = "seq_ongrln_aidat_oplani_tkst")
        @SequenceGenerator(sequenceName = "seq_ongrln_aidat_oplani_tkst", name = "seq_ongrln_aidat_oplani_tkst")
        private Long id;

        @ManyToOne 
        @JoinColumn(name="ortaklik_id")
        private OrtaklikEntity ortaklik;

我不认为transient会有帮助,因为这些记录已经被持久化了。除非客户机显式请求该集合,否则不应检索它们,而该集合正是延迟获取的目的。如果客户希望列出收藏,他们应该与客户联系。我删除了我的临时建议,因为它确实不好;可能会更好吗?由于序列化,它被显式调用。所有属性是默认情况下序列化所有属性。如果您不希望这样做,请创建DTO,或将@JsonIgnore放在字段上,或使用@JsonView指定要公开的内容。为什么在序列化实体时事务未关闭?确保你的交易结束,一切都会好起来。德尼姆的回答帮了我的忙。首先,我在application.properties中禁用了opensessioninview筛选器,然后我JsonIgnored了子集合。如果您发布回复,我想将其标记为正确答案