java - 外键为空
问题描述
我试图通过 jpa 在电话簿和用户之间建立关系,当当前登录的用户创建联系人时,表电话簿中用户的外键仍然为空。我在这里检查了几个问题,但它对我不起作用。
电话簿
@Entity
@Table(name = "Phonebook")
public class Phonebook {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "phonebook_id")
private Long id;
@Column(name = "phone", length = 15, nullable = false)
private String phoneNumber;
@Column(name = "firstname", length = 50, nullable = false)
private String firstName;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
//getters and setters
用户
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id")
private Long id;
@Column(name = "email")
private String email;
@Column(name = "password")
@Length(min = 5, message = "*Your password must have at least 5 characters")
@org.springframework.data.annotation.Transient
private String password;
@OneToMany(mappedBy = "user")
private List<Phonebook> phonebooks;
//getters and setters
电话簿控制器
@RequestMapping(value = {"/home/phonebook"}, method = RequestMethod.GET)
public String showPage(Model model, @RequestParam(defaultValue = "0") int page){
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
User user = userService.findUserByEmail(auth.getName());
model.addAttribute("data",phonebookRepository.findAllByUserId(user.getId(),PageRequest.of(page,10)));
model.addAttribute("currentPage",page);
return "/home/phonebook";
}
@PostMapping("/home/phonebook/save")
public String save (Phonebook p){
phonebookRepository.save(p);
return "redirect:/home/phonebook";
}
电话簿存储库
@Repository("phonebookRepository")
public interface PhonebookRepository extends JpaRepository<Phonebook,Integer> {
List<Phonebook> findAllByUserId(Long id, Pageable pageable);
}
解决方案
你必须做什么首先创建一个用户对象并设置ID,然后保存电话簿。
推荐阅读
- angular - RouterLink 在带有引导程序和角度的导航栏中无法点击
- python - django 当前路径,image/25x25,不匹配任何这些
- android - 将 && 运算符与布尔值和整数一起使用。错误!&& 不能与布尔值和整数一起使用
- github - 遵循说明后显示 404 的 Github 页面?
- node.js - 为后端和前端节点/React 项目的 Heroku 部署设置 Package.json
- html - 在 Bootstrap 4 中将 div 高度设置为过去视口的 100%
- r - 使用 igraph 包的邻接矩阵
- ios - 使用委托从 xib 向 VC 传递数据
- mysql - 设置 sort_buffer_size 后 MySql 未启动
- ios - “获取 URL 的内容”POST 中的 Siri 快捷方式舍入数字