하나의 업데이트 -HQL 쿼리를 exceute하는 문제가 있습니다.HQL 업데이트 쿼리
프로필 엔티티에 저장된 값을 편집하고 싶지만 행운이 없습니다.
@RequestMapping(value = "/profile", method = RequestMethod.POST)
public String profilePost(ModelMap model, @ModelAttribute("user") UserEntity user) {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Query query = session.createQuery("update UserEntity u set u.profile.firstName = :firstName"
+ " where u.username = :username");
query.setParameter("firstname", "john");
query.setParameter("username", user.getUsername());
int result = query.executeUpdate();
session.getTransaction().commit();
return "redirect:/login";
}
당신은 나에게이 LOK 방법을 몇 가지 조언을 줄 수 :
내 실체는 컨트롤러에서
@Entity
@Table(name = "users", catalog = "testdb")
public class UserEntity implements java.io.Serializable {
private Integer id;
private String username;
private String password;
private Profile profile;
@OneToOne(fetch = FetchType.LAZY, mappedBy = "user", cascade = CascadeType.ALL)
public Profile getProfile() {
return this.profile;
}
public void setProfile(Profile profile) {
this.profile = profile;
}
}
@Entity
@Table(name = "profiles", catalog = "testdb")
public class Profile implements java.io.Serializable {
private Integer id;
private UserEntity user;
private String firstName;
private String lastName;
@OneToOne(fetch = FetchType.LAZY)
@PrimaryKeyJoinColumn
public UserEntity getUser() {
return this.user;
}
public void setUser(UserEntity user) {
this.user = user;
}
}
내가 다음 업데이트 쿼리를 실행하려면 아래처럼 보인다 질문:)? the documentation에서
고맙습니다! 당신은 내 하루를 :)) – user1199476