我有一個物體:
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
private String firstname;
private String lastname;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date dateOfBirth;
private String city;
private String address;
private String phone;
private String mobile;
private String email;
private String photo;
private String username;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date hireDate;
@OneToMany
@JoinColumn(name = "teamsId", updatable = false, insertable = false)
private List<Teams> teams;
private Integer teamsId;
}
存盤庫:
@Repository
public interface EmployeeRepository extends JpaRepository<Employee, Integer> {
}
服務:
@Service
public class EmployeeService {
@Autowired
private EmployeeRepository employeeRepository;
public Employee saveEmployeeAndReturnId(Employee employee){
return employeeRepository.saveAndFlush(employee);
}
}
在控制器中
@Autowired
private EmployeeService employeeService;
@PostMapping("/users/addNew")
public RedirectView addNew(Employee employee, RedirectAttributes redirectAttributes){
System.out.println(employee.toString());
Employee newEmployee = employeeService.saveEmployeeAndReturnId(employee);
System.out.println(newEmployee.getId().toString());
結果:
員工(id=null,名字=user,lastname=useruser,dateOfBirth=Tue Aug 24 00:00:00 CEST 1999,city=A,address=A,phone=A,mobile=add,[email protected] ,照片=空,用戶名=用戶,租用日期=空,團隊=空,團隊ID=空)
2022-10-07 12:41:49.420 錯誤 11388 --- [nio-8081-exec-2] oaccC[.[.[/].[dispatcherServlet]:Servlet.service() 用于 servlet [dispatcherServlet] path [] 拋出例外 [請求處理失敗;嵌套例外是 org.springframework.dao.DataIntegrityViolationException:非空屬性參考空值或瞬態值:com.mk.atmosfera.hr.models.Employee._employee_employeeIdBackref; 嵌套例外是 org.hibernate.PropertyValueException:非空屬性參考空值或瞬態值:com.mk.atmosfera.hr.models.Employee。員工employeeIdBackref ] 有根本原因
org.hibernate.PropertyValueException:非空屬性參考空值或瞬態值:com.mk.atmosfera.hr.models.Employee._employeeIdBackref
任何人都知道它來自哪里,我在哪里犯了錯誤?

我沒有在任何地方創建employee_id 欄位并且它出現了,有人知道它可能來自哪里嗎?
uj5u.com熱心網友回復:
看起來您的物體關系是錯誤的:
@OneToMany
@JoinColumn(name = "teamsId", updatable = false, insertable = false)
private List<Teams> teams;
private Integer teamsId;
}
它應該是這樣的:
@ManyToOne
@JoinColumn(name = "teamsId", nullable = true)
private Teams teams;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/513439.html
標籤:爪哇弹簧靴jpa服务
上一篇:遇到陣列值引數系結,但期待[java.lang.Integer(n/a)]
下一篇:是在資料庫中通過orderby對List進行排序邏輯更好,還是在Java邏輯中使用Collection.sort()更好?
