Используя одну из старых версий spring-data-jpa 1.11.9.RELEASE столкнулся с непонятным моментом с Generics
у меня есть spring repository
@Repository
public interface UserRepository extends CrudRepository<UserRecord, String> {}
Записываю так и все работает:
UserRecord user = new UserRecord ();
userRepository.save(user);
Но вижу, что помимо одиночной сущности, Репозиторий содержит так же метод с такой сигнатурой
<S extends T> Iterable<S> save(Iterable<S> entities);
Поэтому я решил записывать сразу всю коллекцию своих элементов вместо записи по очереди
Iterable<UserRecord> list = new ArrayList<>();
userRepository.save(list);
Но, идея мне подчеркивает такое использование красным как неправильное со словами
Incompatible types. Required UserRecord but 'save' was inferred to Iterable: no instance(s) of type variable(s) S exist so that Iterable conforms to UserRecord
Как записать коллекцию элементов разом?
У меня все скомпилировалось. Сравните с вашей реализацией.
UserRepository:
package ru.abelash.stackoverflow;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends CrudRepository<UserRecord, String> {}
UserRecord:
package ru.abelash.stackoverflow;
public class UserRecord {}
Test:
package ru.abelash.stackoverflow;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
UserRepository userRepository = context.getBean(UserRepository.class);
UserRecord user = new UserRecord();
userRepository.save(user);
Iterable<UserRecord> list = new ArrayList<>();
userRepository.save(list);
}
}
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ru.abelash</groupId>
<artifactId>stackoverflow</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.11.9.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Структура проекта:
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я решил создать JMenuЯ полазил в настройках, все сделал, но когда я нажимаю на меню оно не работает