Я работаю с технологиями, перечисленными в названии вопроса.У меня есть простая настройка запроса findNative ().Я строю проект с включенным энхансером, а затем запускаю проект в режиме отладки.
Все начинается нормально ... мой запрос выполняется (здесь я ставлю точку останова)
При просмотре результатов запроса я вижу свой список объектов (всего 22), которыевозвращается по запросу.Дальнейшая проверка покажет все поля, которые я ожидаю увидеть ... но подождите, это еще не все.В нижней части каждого объекта я вижу следующие 2 поля:
_ebean_intercept
_ebean_identity
Конечно, они не корректно отображаются в моем POJO, и все взрывается со следующей ошибкой:
com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion
(StackOverflowError) (through reference
chain:io.ebean.bean.EntityBeanIntercept["owner"] >
MYPATH.myDataRow["_ebean_intercept"]
Из того, что я вижу в отладчике, _ebean_intercept - это своего рода дерево, которое ссылается на _ebean_intercept .... и так далее, и так далее. Я думаю, что я вижу дополнительные вещи, которые добавляются улучшениями ... ноосновываясь на том, как настроен мой класс, я не знаю, почему ...
Также следует отметить, что существует множество других вызовов БД, установленных таким ТОЧНЫМ способом, которые вообще не ломаются.
Вызов фрагмента
Query<myDataRow> query = em.findNative(myDataRow.class,
"SELECT * FROM myTable WHERE myParam = ?");
query.setParameter(1, myParam);
for (myDataRowrow : query.findList()) {
myClass.myMap.put(row.dateFact,row);
}
myDataRow
@Entity
@Table(name="tblmyData")
@JsonAutoDetect(fieldVisibility = Visibility.PUBLIC_ONLY, getterVisibility =
Visibility.NONE, setterVisibility = Visibility.NONE)
public class myDataRow{
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
public Integer id;
@Column(name="data1")
public Integer data1;
}
Объекты, возвращаемые функцией query.findList ()
id = 1
data1 = 22
_ebean_intercept (this winds up being a tree of ebean stuff)
_ebean_identity