使用JavaSpringRESTAPI并将记录插入mysql表
我试图使用SpringRESTAPI并将结果存储到一个临时表中。 这是我试过的。我对java和spring非常陌生,请原谅我的错误。 我的暂存台名称“greetingsstaging”。 我是spring development的新手,请帮助我理解这个问题。 我正在使用JPA和spring 这是主要的应用程序使用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
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;
}