问题
我在带有JPA和Spring Security的Spring Boot中拥有一个REST API。当我尝试通过ID删除数据库中的现有用户对象时,收到以下错误消息:
org.springframework.dao.EmptyResultDataAccessException: No class com.jea.user.User entity with id 3754c59a-20c5-4c6a-8ddd-62fc49809946 exists
我作为路径变量提供给该方法的ID与获取所有用户时返回的ID完全相同。 在我的Java模型中,ID被保存为UUID,在JPA数据库中创建了BINARY(255)列。
下面是数据库中我的JSON用户对象
{
"id": "3754c59a-20c5-4c6a-8ddd-62fc49809946",
"profilePicture": null,
"username": "svennieboy",
"password": "$2a$10$iZBq8gRsIPqYShu03qJ/2Ou4FWpRPMCs4kqrfo9zIcXozchR41yRC",
"email": "s@live.nl",
"role": "ROLE_USER",
"location": null,
"website": null,
"biography": null,
"allTweets": [],
"recentTweets": [],
"followers": [],
"following": []
}
用户模型
@Entity
@Table(name = "account")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private UUID id;
//Removed code for brevity
用户控制器方法
@DeleteMapping("/users/{id}")
public ResponseEntity<String> deleteUser(@PathVariable UUID id) {
userService.deleteUser(id);
return new ResponseEntity<>("User deleted", HttpStatus.OK);
}
用户服务方法
public void deleteUser(UUID id){
userRepository.deleteById(id);
}
用户存储库
public interface UserRepository extends CrudRepository<User, UUID> {
}
请告诉我出了什么问题,因为我一无所知。
答案 0 :(得分:0)
我将用户模型中ID的注释更改为此,现在可以正常工作了! 因此希望其他人会发现这个答案非常有用。
@Entity
@Table(name = "account")
public class User {
@Id
@GeneratedValue( generator = "uuid2" )
@GenericGenerator( name = "uuid2", strategy = "uuid2" )
@Column( name = "id", columnDefinition = "BINARY(16)" )
private UUID id;