Я получаю следующее исключение:
java.lang.UnsupportedOperationException: не может иметь циклический
ссылки в классе бина, но получили круговую ссылку класса
класс org.locationtech.jts.geom.Geometry
с использованием Encoders.bean (MyBean), где MyBean - это следующий класс:
package mypackage;
import java.io.Serializable;
import java.util.Date;
import org.locationtech.jts.geom.LineString;
import org.locationtech.jts.geom.Point;
public class MyBean implements Serializable{
private static final long serialVersionUID = 3774077116575410321L;
private String uuid;
private Date atr1;
private LineString myLine;
private Point point1;
private Point point2;
private Double attr2;
...
other attributes
...
...
getters and setters
...
}
Мне нужно сгруппировать набор данных по атрибуту в качестве ключа, а затем выполнить некоторые вычисления по сгруппированным значениям. Эти вычисления возвращают список MyBean.
...initial code...
//dataset1 is a KeyValueGroupedDataset.
Dataset<MyBean> res = dataset1.flatMapGroups(new FlatMapGroupsFunction<String, AnotherBean, MyBean>() {
private static final long serialVersionUID = 8000298831286293185L;
@Override
public Iterator<MyBean> call(String key, Iterator<AnotherBean> values) throws Exception {
...calculations...
return something.iterator();
}
}, Encoders.bean(MyBean.class));
Я уверен, что исключение связано с атрибутами Geometry внутри MyBean, потому что, если я их удаляю, у меня больше не будет этой проблемы. Однако с ними было бы удобнее.