以下是一个使用AngularJS的$http POST请求和JPA OneToOne映射的示例,返回的是String而不是JSON数据的解决方法:
@ToString
注解,并重写了toString()
方法。这将确保在将实体对象转换为字符串时,以字符串形式返回实体对象的属性值。@Entity
@ToString
public class User {
// 实体属性
// ...
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
// 其他属性
'}';
}
}
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserRepository userRepository;
@PostMapping
public String createUser(@RequestBody User user) {
User savedUser = userRepository.save(user);
return savedUser.toString();
}
}
$scope.createUser = function() {
var user = {
// 用户属性
// ...
};
$http.post('/api/users', user)
.then(function(response) {
// 处理成功响应
console.log('用户创建成功:' + response.data);
}, function(error) {
// 处理错误响应
console.log('创建用户失败:' + error.data);
});
}
在上述示例中,当使用$http.post()
发送POST请求时,将用户对象作为参数传递给后端,后端将保存用户,然后将保存的用户对象转换为字符串并作为响应返回。在前端,你可以使用response.data
获取到后端返回的字符串数据。