Angularjs/Spring/Hibernate uygulamasına sahibim ve angularjs ile sunucu tarafı arasındaki etkileşim için REST hizmetini kullanıyorum. Bir kullanıcıyı DB'ye devam ettirmek istiyorum, bu yüzden angularjs tarafım nasıl görünüyor?Eşleme/Gezinti AngularJs Nesne Hazırda bekletme durumu
createUser: function(user){
var userToSend = {
"firstName" : user.firstName,
"lastName" : user.lastName,
"homeAddress.location" : user.homeAddress.location ,
"email" : user.email,
"ssoId": user.ssoId
};
var a= $http.post('http://localhost:8080/MyDirectory/createUser/', userToSend)
.then(
function(response){
$rootScope.refresh();
return response.data;
},
function(errResponse){
window.alert(errResponse);
console.error('Error while creating user');
return $q.reject(errResponse);
}
);
return null;
},
Benim sunucu tarafında şudur:
@Transactional(propagation = Propagation.REQUIRED)
public void saveUser(User user) {
Long nextLong = RandomUtils.nextLong(0, 10000L);
// user.setId(nextLong.intValue());
User merge = em.merge(user);
System.out.println(" merged ");
em.persist(merge);
System.out.println("");
}
ve bu benim kullanıcı ve homeaddress kişiler çıkmaktadır: i value.It çalışıyor homeaddress yoksa Şimdi
@Entity
@Table(name = "DIR_USER")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id = 1;
@Column(name = "SSO_ID", unique = true, nullable = false)
private String ssoId;
@NotEmpty
private String firstName;
@NotEmpty
@Column(name = "LAST_NAME", nullable = false)
private String lastName;
@NotEmpty
@Column(name = "EMAIL", nullable = false)
private String email;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<UserInscription> userInscription = new HashSet<UserInscription>();
@OneToOne
// @JsonManagedReference
private HomeAddress homeAddress;
public Set<UserInscription> getUserInscription() {
return userInscription;
}
public void setUserInscription(Set<UserInscription> userInscription) {
this.userInscription = userInscription;
}
// @JsonIgnore
public HomeAddress getHomeAddress() {
return homeAddress;
}
public void setHomeAddress(HomeAddress homeAddress) {
this.homeAddress = homeAddress;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSsoId() {
return ssoId;
}
public void setSsoId(String ssoId) {
this.ssoId = ssoId;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@JsonIgnore
public Set<UserInscription> getUserDocuments() {
return userInscription;
}
public void setUserDocuments(Set<UserInscription> UserInscriptions) {
this.userInscription = UserInscriptions;
}
@Override
public String toString() {
return "User [id=" + id + ", ssoId=" + ssoId + ", firstName=" + firstName + ", lastName=" + lastName
+ ", email=" + email + "]";
}
}
@Entity
public class HomeAddress implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String email;
@OneToOne
private Country country;
private String location;
@JsonBackReference
@OneToOne
private User relatedUser;
public User getRelatedUser() {
return relatedUser;
}
public void setRelatedUser(User relatedUser) {
this.relatedUser = relatedUser;
}
public Country getCountry() {
return country;
}
public void setCountry(Country country) {
this.country = country;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
ancak bir OneToOne olan homeaddress ile bu istisnayı elde ediyorum:
23-Mar-2016 11:35:00.081 WARNING [http-nio-8080-exec-33] org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.handleHttpMessageNotReadable Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: Unrecognized field "homeAddress.location" (class com.directory.model.User), not marked as ignorable (7 known properties: "lastName", "homeAddress", "ssoId", "id", "firstName", "email", "userInscription"])
at [Source: [email protected]; line: 1, column: 61] (through reference chain: com.directory.model.User["homeAddress.location"]); nested exception is com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "homeAddress.location" (class com.directory.model.User), not marked as ignorable (7 known properties: "lastName", "homeAddress", "ssoId", "id", "firstName", "email", "userInscription"])
at [Source: [email protected]; line: 1, column: 61] (through reference chain: com.directory.model.User["homeAddress.location"])
Böyle
Teşekkürler İyi çalışıyor – BenMansourNizar