【发布时间】:2025-12-04 21:15:03
【问题描述】:
我正在使用 Spring Neo4j 3.3 版本并通过密码创建实体。我有 Repo 类,我想在其中获取以下内容,但出现错误
原因:java.lang.RuntimeException:无法从具有多个元素的 Iterable 中提取单个值。 在 org.springframework.data.neo4j.conversion.DefaultConverter.extractSingle(DefaultConverter.java:61) ~[spring-data-neo4j-3.3.0.RELEASE.jar:na] 在 org.springframework.data.neo4j.conversion.DefaultConverter.extractValue(DefaultConverter.java:52) ~[spring-data-neo4j-3.3.0.RELEASE.jar:na] 在 org.springframework.data.neo4j.conversion.DefaultConverter.convert(DefaultConverter.java:41) ~[spring-data-neo4j-3.3.0.RELEASE.jar:na] 在 org.springframework.data.neo4j.support.conversion.EntityResultConverter.convert(EntityResultConverter.java:165) ~[spring-data-neo4j-3.3.0.RELEASE.jar:na] 在 org.springframework.data.neo4j.conversion.QueryResultBuilder$1.underlyingObjectToObject(QueryResultBuilder.java:86) ~[spring-data-neo4j-3.3.0.RELEASE.jar:na]
ReservRepo:
@Query("MATCH (guest:Guest)-[rel:GUEST_RESV]->(reserv:Reserv)-[histRel:RESV_HISTORY]->(resvhistory:ReservHistory) WHERE reserv.id={0} "
+ " Return guest , COLLECT(resvhistory) as history ")
Collection<GuestHistory> getGuestReservationHist(String reservId);
@QueryResult
public interface GuestHistory {
@ResultColumn("guest")
GuestProfile getGuest();
@ResultColumn("history")
List<ReservHistory> getHistory();
}
/* Fetching Guest History object */
Iterator<GuestHistory> iterator = historyObj.iterator();
while (iterator.hasNext()) {
GuestHistory hist = iterator.next();
reservation.setGuest_firstName(hist.getGuest().getFirstName());
reservation.setGuest_lastName(hist.getGuest().getLastName());
reservation.setGuest_mobile(hist.getGuest().getMobile());
reservation.setGuest_email(hist.getGuest().getEmailId());
reservation.setVIP(hist.getGuest().getIsVip());
for(ReservHistory history:hist.getHistory()){ /*hist.getHistory() :Error*/
System.out.println("---history---"+history);
}
resevation.add(reservation);
}
请告诉我如何从这里开始,或者请分享任何例子
【问题讨论】:
-
Cypher 返回的不是不止一行吗?
-
是的,这个密码返回不止一行。
-
您是否尝试使用
List<ReservationHistory> getHistory()而不是Iterable<ReservationHistory> getHistory()? -
不走运...我关注了*.com/questions/20705762/…。在这里,我可以获取 Guest 对象但无法获取 Collection 。
-
它适用于 Spring Data Neo4j 3.4.0.M1 和 Neo4j 2.2.2
标签: spring neo4j spring-data-neo4j