【发布时间】:2016-09-07 12:02:09
【问题描述】:
// LoginDAO,将 UI 值保存到 DB 中的逻辑...正在添加新值并替换旧值
System.out.println("In Vendor registration i.e LoginDAO class::::::::::"+vendorRegistration.getVid()+""+""+vendorRegistration.getFirstName());
Session session = getSession();
session.beginTransaction(); //begin transaction for the session.
Query query = session.createQuery("UPDATE VendorRegistration set firstName =:firstname,lastName =:lastname,Email =:email,password =:password,Vid =:vid ");
query.setParameter("firstname",vendorRegistration.getFirstName());
query.setParameter("lastname",vendorRegistration.getLastName());
query.setParameter("email",vendorRegistration.getEmail());
query.setParameter("password",vendorRegistration.getPassword());
query.setParameter("vid",vendorRegistration.getVid());
int user = query.executeUpdate();
session.save(vendorRegistration);
System.out.println("user values are ::::::::::::::::::"+user);
session.getTransaction().commit(); //here transaction complete with commit the data in db.
session.close();
// Controller class
@RequestMapping(value = {"/signup"}, method = RequestMethod.POST)
public String saveRegAction(@ModelAttribute("signup") @Validated VendorRegistration vendorRegistration, Model model,HttpSession session,BindingResult bindingResult) throws IOException
{
System.out.println("the object is:" + model);
if(bindingResult.hasErrors())
{
logger.info("user details===========" +vendorRegistration.getFirstName()+""+vendorRegistration.getLastName()+""+vendorRegistration.getVid()+""+vendorRegistration.getEmail()+""+vendorRegistration.getPassword());
logger.info("Returning home.jsp page");
model.addAttribute("vendor", new VendorRegistration());
return "signup";
}
loginService.saveNewUser(vendorRegistration);
session.setAttribute("vendorRegistration", vendorRegistration);
logger.info("in registration page........... save register action");
return "vendorLogin";
//值保存多次,保留旧值并将新值保存到数据库中
![这是 DB 的问题][1]][1]
//pojo类
@Entity
@Table(name = "VendorRegistration")
public class VendorRegistration {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "VID")
private String vid;
@NotBlank
@Column(name = "FIRSTNAME")
private String firstName;
@Column(name = "LASTNAME")
private String lastName;
@Column(name = "EMAIL")
@Email(message="Please Enter Valid Email ID")
private String email;
@Column(name ="PASSWORD")
private String password;
//getters and setters
【问题讨论】:
-
首先为什么要执行查询并保存实体?删除您的查询并执行 is。你只应该使用
session.save(your-entity)。此外,您不应该在模型中添加new VendorRegistration(),以防出现错误,它已经添加,不要再次添加。
标签: java mysql sql spring hibernate