我正在使用 JPA 学习 Spring。我使用 MySQL 创建了一个本地数据库来存储“用户”,一个使用 Spring 的 Web 服务和一个带有 Angular 的前端。
我向数据库提供了一些数据,并设法用 Angular 显示它。但来自 Angular 表单的 Post 请求似乎不起作用。该表单运行良好并提供了一个对象。
用户模型:
@Entity
@Table(name = "utilisateur")
public class Utilisateur {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String firstname;
private String lastname;
private int age;
DAO 用户:
@Repository
public interface DAOutilisateur extends JpaRepository<Utilisateur, Integer> {
}
用户 Controller :
@RestController
@CrossOrigin(origins = "http://localhost:4200")
public class UtilisateurController {
DAOutilisateur utilisateurDAO;
@Autowired
public UtilisateurController(final DAOutilisateur utilisateurDAO) {
this.utilisateurDAO = utilisateurDAO;
}
@GetMapping({"/listeUtilisateur"})
public List<Utilisateur> listUtilisateur(){
System.out.println("Liste des utilisateurs");
return utilisateurDAO.findAll();
}
@PostMapping("/listeUtilisateur")
void addUser(@RequestBody Utilisateur user) {
System.out.println("ECHO");
utilisateurDAO.save(user);
}
}
Angular 中使用 TypeScript 函数来访问 Post URL,用户是通过表单创建的对象:
public saveUserSpring(user: UserSpring) {
return this.http.post<UserSpring>(this.userUrl, user);
}
感谢您的帮助!
伯特兰
最佳答案
已解决 正如 Rohit Kavathekar 上面提到的,我没有订阅我的 Angular 项目中的 .post 方法,该方法返回一个 Observable 并且需要订阅。
谢谢。
关于java - 使用 Spring JPA 保存新数据 - Angular 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60510461/