使用JavaSpringRESTAPI并将记录插入mysql表

使用JavaSpringRESTAPI并将记录插入mysql表,java,spring,spring-boot,hibernate,jpa,Java,Spring,Spring Boot,Hibernate,Jpa,我试图使用SpringRESTAPI并将结果存储到一个临时表中。 这是我试过的。我对java和spring非常陌生,请原谅我的错误。 我的暂存台名称“greetingsstaging”。 我是spring development的新手,请帮助我理解这个问题。 我正在使用JPA和spring 这是主要的应用程序 package com.javatechie.spring.api; import java.util.List; import org.springframework.beans.f

我试图使用SpringRESTAPI并将结果存储到一个临时表中。 这是我试过的。我对java和spring非常陌生,请原谅我的错误。 我的暂存台名称“greetingsstaging”。 我是spring development的新手,请帮助我理解这个问题。 我正在使用JPA和spring

这是主要的应用程序

package com.javatechie.spring.api;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

import com.javatechie.spring.api.entty.Greetings;
import com.javatechie.spring.api.service.Greet;
import com.javatechie.spring.api.service.GreetInterface;
import com.javatechie.spring.api.service.GreetingsService;

@SpringBootApplication
public class GreetingsConsumerApplication {
    private static RestTemplate rs = new RestTemplate();
    private static String baseUrl = "http://localhost:8080/api/Greetings";

    private static GreetInterface greetInterface;

    @Autowired
    public GreetingsConsumerApplication(GreetInterface theGreetInterface) {
        greetInterface = theGreetInterface;
    }

    public static void main(String[] args) {
        SpringApplication.run(GreetingsConsumerApplication.class, args);

        ResponseEntity<List<GreetingsService>> response = rs.exchange(baseUrl, HttpMethod.GET, null,
                new ParameterizedTypeReference<List<GreetingsService>>() {
                });
        List<GreetingsService> gs = response.getBody();

        for (GreetingsService g : gs) {

            Greetings greetings = new Greetings(g.getId(), g.getName(), g.getAge(), g.getAddress());
            System.out.println("Id : " + greetings.getId() + " name : " + greetings.getName() + " Age : "
                    + greetings.getAge() + " Address : " + greetings.getAddress());
            greetInterface.save(greetings);
        }

    }

}
这是存储库界面

package com.javatechie.spring.api.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import com.javatechie.spring.api.entty.Greetings;

@Repository
public interface GreetingsRepository extends JpaRepository<Greetings, Integer> {

}
我得到以下例外

创建在类路径资源[org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]中定义的名为“requestMappingHandlerAdapter”的bean时出错:通过方法“requestMappingHandlerAdapter”参数1表示的未满足的依赖关系;嵌套异常为org.springframework.beans.factory.BeanCreationException:在类路径资源[org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]中定义的名为“mvcConversionService”的bean创建错误:通过工厂方法实例化bean失败;嵌套异常为org.springframework.beans.Bean实例化异常:未能实例化[org.springframework.format.support.FormattingConversionService]:工厂方法“mvcConversionService”引发异常;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“greetingsRepository”的bean时出错,该名称在com.javatechie.spring.api.repository.greetingsRepository中定义,该名称在JpaRepositoriesRegistrar.EnableJpaRepositories配置中声明@EnableJpaRepositories中:无法解析对bean的引用设置bean属性“mappingContext”时使用“jpaMappingContext”;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“jpaMappingContext”的bean时出错:调用init方法失败;嵌套异常为org.hibernate.AnnotationException:未为实体com.javatechie.spring.api.entty.hellies指定标识符


我的主要想法是将API的结果存储到暂存表中。

您缺少类的@Id注释。每个JPA实体必须有一个唯一标识它的主键

@Entity
@Table(name="greetingsstaging")
public class Greetings {

    @Id
    int id;
}

哇,这真是个奇迹。非常感谢你指出这一点。非常感谢你。我还必须在pojo类中添加一个默认构造函数。
package com.javatechie.spring.api.entty;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="greetingsstaging")
public class Greetings {

    int id;
    String name;
    int age;
    String address;

    public Greetings(int id, String name, int age, String address) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    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 int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Override
    public String toString() {
        return "Greetings [id=" + id + ", name=" + name + ", age=" + age + ", address=" + address + "]";
    }

}
@Entity
@Table(name="greetingsstaging")
public class Greetings {

    @Id
    int id;
}