Я относительно новичок в использовании Spring JPA, и я потратил пару часов, пытаясь решить эту проблему.Я знаю, что этот вопрос задавался много раз, и я пробовал многие из их решений безрезультатно (скорее всего, из-за моего собственного опыта, я много раз терял себя в попытке опробовать их решения).Я удалил свою папку репозитория .m2, как некоторые предлагали, я удостоверился в том, чтобы поместить зависимость диалекта SQLite в свой pom.xml, и я даже попытался создать класс конфигурации, в котором я бы создал этот bean-компонент вручную (но, как уже упоминалось, я получилнастолько потерянный в том, что происходило, что я решил удалить это после того, как это не могло бежать снова).Я пытаюсь подключить свою базу данных SQLite к моему проекту Spring JPA (кажется, что не многие люди используют SQLite для своих проектов Spring JPA, так как мне не удалось найти четкое руководство / документацию при этом).Вот соответствующие файлы:
Приложение Main
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableJpaRepositories
public class myApplication {
public static void main(String[] args) {
SpringApplication.run(myApplication.class, args);
}
}
Мой репозиторий
import org.springframework.data.repository.JpaRepository;
import java.util.List;
public interface UserRepository extends JpaRepository<User, Integer> {
List<User> getUsers();
}
Мой объект
@Entity
@Table(name = "User")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int user_id;
@Column(name="user_name")
private String user_name;
@Column(name="user_password")
private String user_password;
protected User() {}
public User(String user_name, String user_password) {
this.user_name = user_name;
this.user_password = user_password;
}
public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_password() {
return user_password;
}
public void setUser_password(String user_password) {
this.user_password = user_password;
}
@Override
public String toString() {
return String.format("User[id=%d, user_name='%s']", user_id, user_name);
}
}
Мой сервис
@Service
public class myService {
@Autowired
UserRepository userRepository;
public List<User> getUsers() {
return userRepository.getUsers();
}
}
Свойства приложения
spring.datasource.url= jdbc:sqlite:memory:database/myDB
spring.datasource.driver-class-name=org.sqlite.JDBC
spring.datasource.username = ""
spring.datasource.password = ""
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLiteDialect
spring.jpa.generate-ddl=true
POM
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.23.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate.dialect/sqlite-dialect -->
<dependency>
<groupId>org.hibernate.dialect</groupId>
<artifactId>sqlite-dialect</artifactId>
<version>0.1.0</version>
</dependency>
Как указано в заголовке, проблема заключается в том, что компонент с именем entityManagerFactory
не может быть найден:
Field userRepository in com.project.myService required a bean named 'entityManagerFactory' that could not be found.
Я думал, что Spring может автоматически определять бины, необходимые для вашего проекта, и автоматически генерирует их для вас?Многие учебники, которые используют MySQL и встроенную базу данных Spring, похоже, никогда не сталкивались с этой проблемой.Это в основном проблема при использовании SQLite с Spring JPA?Буду очень признателен за рекомендации по настройке SQLite для работы с Spring JPA, спасибо!