// LoginDAO,逻辑,UI值保存到DB ......越来越添加新值和旧值被替换同值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
![这是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(你的实体)'。你也不应该在模型出现错误时向模型添加一个新的VendorRegistration(),它已经添加了,不要再添加它。 –