Json рекурсивная проблема в Hibernate ResponseEntity Spring-MVC
Привет, я занимаюсь разработкой приложения с использованием Spring Framework - 4.0.1, JSTL - 1.2.1, Hibernate - 4.3.x и добавлением jackson-all-1.9.0.jar. Я пытаюсь получить данные пользователя при входе в систему от angularjs.
$scope.login = function () {
console.log("url: " + app.baseURL + "login for username: " + $scope.loginBean.userName);
$http({
method: 'POST',
url: app.baseURL + "login",
data: $scope.loginBean,
headers : {
'Content-Type' : 'application/json'
}
}).then(
function (response) {
console.log("response: " + response.data.name);
}, function (error) {
console.log("error: " + error.status + "\r\n" + error.data);
});
}
Ниже приведены соответствующие классы Java
@Entity
@Table(name="user", catalog="enproj")
public class User implements java.io.Serializable {
private Integer id;
... // other items
private Set<Company> companies = new HashSet<Company>(0);
... // more items, getters and setters
@OneToMany(fetch=FetchType.LAZY, mappedBy="user")
public Set<Company> getCompanies() {
return this.companies;
}
public void setCompanies(Set<Company> companies) {
this.companies = companies;
}
@Entity
@Table(name="company", catalog="enproj")
public class Company implements java.io.Serializable {
private Integer id;
private User user;
... // other items, getters and setters
@ManyToOne(fetch=FetchType.LAZY)
public User getUser() {
return this.user;
}
public void setUser(User user) {
this.user = user;
}
и мой метод контроллера выглядит
@RequestMapping(value = "/login", method = RequestMethod.POST , produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<User> login(@RequestBody LoginBean loginBean) {
User user = User.GetUser(loginBean);
if (user == null) {
return new ResponseEntity<User>(HttpStatus.NOT_FOUND);
}
return new ResponseEntity<User>(user, HttpStatus.OK);
}
Я гуглил об этом и нашел использовать некоторые методы, такие как @JsonManageReference
а также @JsonBackReference
ИЛИ ЖЕ @JsonIgnore
Но то, что я пробовал, терпит неудачу, всегда получая ошибку ниже function (error)
SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at xc (angular.js:16)
error: undefined // my log
undefined // my log
В Chrome Network Monitor в качестве отклика я вижу рекурсивный JSON. Может быть, я использовал методы неправильно. Кто-то указывает мне, как избежать рекурсивной проблемы JSON. Благодарю.