- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看到了很多问题,但答案并不能满足我的问题...
我尝试了 3 个 java 版本 14、11、8。
这是我的项目结构。
GardenApplication.java。我包括所有注释,甚至 spring 文档说使用 @SpringBootApplication 就足够了。在此错误之前,无法找到@Repository,我包含@EnableJpaRepositories
package com.garden.garden;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan({"com.garden.garden.controller", "com.garden.garden.service.impl"})
@EnableJpaRepositories(basePackages = {"com.garden.garden.repository"})
@EntityScan(basePackages = {"com.garden.garden.model"})
public class GardenApplication {
public static void main(String[] args) {
SpringApplication.run(GardenApplication.class, args);
}
}
VegetableController.java
package com.garden.garden.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.garden.garden.model.Vegetable;
import com.garden.garden.service.VegetableService;
@Controller
@RequestMapping
public class VegetableController {
@Autowired
private VegetableService vegetableService;
@GetMapping("/vegetableList")
public String list(Model model) {
List<Vegetable> listVegetables = vegetableService.list();
model.addAttribute("vegetables", listVegetables);
return "index";
}
}
VegetableServiceImpl.java
package com.garden.garden.service.impl;
import java.util.List;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.garden.garden.model.Vegetable;
import com.garden.garden.repository.VegetableRepository;
import com.garden.garden.service.VegetableService;
@Service
public class VegetableServiceImpl implements VegetableService {
@Autowired
private VegetableRepository vegetableRepository;
@Override
public List<Vegetable> list() {
return (List<Vegetable>) vegetableRepository.findAll();
}
@Override
public Optional<Vegetable> listById(int id) {
// TODO Auto-generated method stub
return null;
}
@Override
public int save(Vegetable vegetable) {
// TODO Auto-generated method stub
return 0;
}
@Override
public void delete(int id) {
// TODO Auto-generated method stub
}
}
VegetableService.java
package com.garden.garden.service;
import java.util.List;
import java.util.Optional;
import com.garden.garden.model.Vegetable;
public interface VegetableService {
public List<Vegetable> list();
public Optional<Vegetable> listById(int id);
public int save(Vegetable vegetable);
public void delete(int id);
}
VegetableRepository.java
package com.garden.garden.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.garden.garden.model.Vegetable;
@Repository
public interface VegetableRepository extends JpaRepository<Vegetable, Integer> {
}
Vegetable.java
package com.garden.garden.model;
import java.math.BigDecimal;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "vegetable")
public class Vegetable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
private String family;
private int daysOnNursery;
private int daysToGrow;
private int daysHarvesting;
private java.math.BigDecimal plantsPerSquare;
private java.math.BigDecimal price;
private java.math.BigDecimal weight;
public Vegetable(int id, String name, String family, int daysOnNursery, int daysToGrow, int daysHarvesting,
BigDecimal plantsPerSquare, BigDecimal price, BigDecimal weight) {
super();
this.id = id;
this.name = name;
this.family = family;
this.daysOnNursery = daysOnNursery;
this.daysToGrow = daysToGrow;
this.daysHarvesting = daysHarvesting;
this.plantsPerSquare = plantsPerSquare;
this.price = price;
this.weight = weight;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFamily() {
return family;
}
public void setFamily(String family) {
this.family = family;
}
public int getDaysOnNursery() {
return daysOnNursery;
}
public void setDaysOnNursery(int daysOnNursery) {
this.daysOnNursery = daysOnNursery;
}
public int getDaysToGrow() {
return daysToGrow;
}
public void setDaysToGrow(int daysToGrow) {
this.daysToGrow = daysToGrow;
}
public int getDaysHarvesting() {
return daysHarvesting;
}
public void setDaysHarvesting(int daysHarvesting) {
this.daysHarvesting = daysHarvesting;
}
public java.math.BigDecimal getPlantsPerSquare() {
return plantsPerSquare;
}
public void setPlantsPerSquare(java.math.BigDecimal plantsPerSquare) {
this.plantsPerSquare = plantsPerSquare;
}
public java.math.BigDecimal getPrice() {
return price;
}
public void setPrice(java.math.BigDecimal price) {
this.price = price;
}
public java.math.BigDecimal getWeight() {
return weight;
}
public void setWeight(java.math.BigDecimal weight) {
this.weight = weight;
}
}
我还尝试解决添加此依赖项的问题:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.garden</groupId>
<artifactId>garden</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>garden</name>
<description>Market garden web application</description>
<properties>
<java.version>14</java.version>
</properties>
<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-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.properties
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
spring.datasource.url=jdbc:mysql://localhost:3306/garden
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=create
最佳答案
请删除 application.properties
中对自动配置的排除,并添加 hibernate-dialect,即更新您的 application.properties
,如下所示:
spring.datasource.url=jdbc:mysql://localhost:3306/garden
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=create
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
此外,您可以将GardenApplication
简化为
package com.garden.garden;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@SpringBootApplication
@EnableJpaRepositories
@EntityScan
public class GardenApplication {
public static void main(String[] args) {
SpringApplication.run(GardenApplication.class, args);
}
}
并从 pom 中删除 tomcat 依赖项(它通过 spring-boot-starter-web
传递)。此外,在您的依赖项中添加 lombok,您可以使用 @Data
注释 Vegetable
并删除 Getters、Setters 和构造函数。
关于java - Spring Boot - “Error creating bean with name 'entityManagerFactory'” - 启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61486804/
我的 webapp 包含许多 entityManagerFactories (DB)。每个都有自己独特的名称,例如 entityManagerFactoryApp、entityManagerFacto
这是来自堆栈跟踪的(底部)错误: Caused by: java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory
I'm working on a basic application using Java Spring Boot, I'm stuck on this error:我正在使用Java Spri
我需要在测试之间重新创建 EntityManagerFactory,以确保我的序列在 JPA 序列生成器中重置以匹配数据库。 我需要重新创建 EMF,或者根据当前设置重新连接到数据源。 尽管 spri
我有一个使用hibernate的项目,启动时间很长,我想知道是否可以序列化EntitiyManagerFactory,这样只有第一次启动会很慢。 最佳答案 它可以在hibernate中序列化(在其他J
在查询对象和/或删除/创建时,我无法理解实体管理器的正确用法。现在,对于任何数据库事务,我有几种打开和关闭新实体管理器的服务方法,如下所示: public static Long getCountAp
我刚刚开始开发一个旨在支持现有 Web 项目的应用程序,因此业务层和持久层已经存在,并且在该 Web 应用程序中运行良好。现在,当我在控制台应用程序中使用两个层的库时,我收到一个错误,指出 JpaTr
我想要两个 EntityManagerFactories(org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean 在这种情
我使用 eclipselink 作为 JPA 的实现,我想知道是否可以检查我的 EntityManagerFactory 是否“活着” 例如,如果连接参数无效,当我创建 EMF 时我不会有任何异常,直
我正在尝试 Autowiring 对不受 Spring 管理的类的依赖关系。为此,我使用以下内容 try (ClassPathXmlApplicationContext context = new C
我是 JPA 和 hibernate 的新手。在我的网络应用程序中,我已将 JDBC 代码更改为 JPA。在运行网络应用程序时,我收到了一大堆错误。但根据我对 JPA 和 Hibernate 的了解,
我正在开发一个需要执行一些数据库操作的应用程序。 我为 EntityManagerFactory 创建了一个静态变量,并在应用程序调用的方法中对其进行了初始化 if (emf == null) {
persistence.xml 文件 org.hibernate.ejb.HibernatePersistence com...... ApplicationContext.xm
有谁知道如何手动创建一个EntityManagerFactory?当我说手动时,我的意思是让它使用一个特殊的 persistence.xml 文件?这是我尝试过的,但都失败了。 Configurati
我是 ORM 的新手。我刚开始阅读有关使用 Hibernate 的 Java Persistence API 的书籍和文档。 我只是想知道,关闭EntityManagerFactory与关闭jdbc数
我的应用无法 Autowiring entityManagerFactory。 我的applicationContext.xml: classpath:jpa-pers
因此,尝试使用JPA实现运行第一个sprinboot应用程序,并得到以下错误: Description: Field personneDAO in com.example.demo.controlle
我可以在 bean 外部从 EntityManagerFactory 创建一个 EntityManager 吗?如果是这样,我该怎么做? 最佳答案 在非托管环境中(这就是您所说的 bean 外部的意思
我正在开发一个带有 MySql 数据库、JPA 对象和 EntityManagerFactory 的 java 应用程序,并使用 EclipseLink 来管理数据库。一切正常,但我有一个问题。 我的
我的 spring 代码出现以下错误,这是由实体类之一引起的。由于 Spring/JPA 没有提供任何关于错误来源的提示,我将不得不删除每个实体,直到找到罪魁祸首。通常会给出线索,但这里的情况并非如此
我是一名优秀的程序员,十分优秀!