我想通過一個迭代器作爲Spring Data中一個方法的參數,但eclipse告訴我Java正試圖調用同一方法的普通實體重載。將迭代器傳遞給方法
public void persistLandTiles(List<LandTile> tilesToPersist) {
landTileRepo.save(tilesToPersist.iterator());
}
錯誤:
Bound mismatch: The generic method save(U) of type CRUDRepository<T> is not applicable
for the arguments (Iterator<LandTile>). The inferred type Iterator<LandTile> is not a
valid substitute for the bounded parameter <U extends LandTile>
和被調用的接口方法:
@NoRepositoryBean
public interface CRUDRepository<T> extends PagingAndSortingRepository<T, Long> {
/**
* persists an entity by forwarding to entity.persist()
* @param entity to be persisted
* @return the saved entity (being the same reference as the parameter)
*/
@Transactional
<U extends T> U save(U entity);
/**
* persists the provided entities by forwarding to their entity.persist() methods
* @param entities to be persisted
* @return the input iterable
*/
@Transactional
<U extends T> Iterable<U> save(Iterable<U> entities);
我的界面,而自動裝配:
public interface LandTileRepo extends CRUDRepository<LandTile>, SpatialRepository<LandTile> {
}
誰能告訴我是什麼做錯了,它是在嘗試g來調用「U保存(U實體)」;「方法而不是「Iterable save(Iterable entities)」;「方法?
另外,因爲它看起來像接受迭代器的方法只是調用entity.persist()無論如何,是否有任何缺點,我只是在foreach循環調用保存(U實體)呢?
啊,是的,這是一個「不」的問題!我一定很累,謝謝! – CorayThan 2013-02-24 23:12:04
當我查詢的東西,我繼續處理類「EndResult」,它只返回一個迭代器,所以我一直不得不將迭代器轉換爲列表,我認爲他們也只接受迭代器。 –
CorayThan
2013-02-24 23:17:58