我在提交数据的时候,每次都出现这样的错误,不知道是什么原因,请各位大哥大姐多多指教,分不够咱就加!!
loginAction/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.yourcompany.struts.action;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Session;
import org.hibernate.Transaction;import com.yourcompany.HibernateSessionFactory;
import com.yourcompany.Login;
import com.yourcompany.struts.form.LoginForm;/** 
 * MyEclipse Struts
 * Creation date: 06-05-2008
 * 
 * XDoclet definition:
 * @struts.action path="/login" name="loginForm" input="/login.jsp" scope="request" validate="true"
 */
public class LoginAction extends Action {
/*
 * Generated Methods
 */ /** 
 * Method execute
 * @param mapping
 * @param form
 * @param request
 * @param response
 * @return ActionForward
 */
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
String username=loginForm.getUsername();
String password=loginForm.getSss();
Session session = HibernateSessionFactory.getSession();
Transaction tx=session.beginTransaction();
Login user =new Login();
String privilege="admin";
user.setPassword(password);
user.setUsername(username);
user.setPrivilege(privilege);
session.save(user);
tx.commit();
session.close();
return mapping.findForward("success");
}
}
Login.java
package com.yourcompany;// Generated by MyEclipse Persistence Tools/**
 * Login generated by MyEclipse Persistence Tools
 */
public class Login extends AbstractLogin implements java.io.Serializable { // Constructors /** default constructor */
public Login() {
} /** minimal constructor */
public Login(String privilege) {
super(privilege);
} /** full constructor */
public Login(String password, String username,String privilege) {
super(password, privilege,privilege);
}}
AbstractLogin.javapackage com.yourcompany;/**
 * AbstractLogin generated by MyEclipse Persistence Tools
 */public abstract class AbstractLogin implements java.io.Serializable { // Fields private String username; private String password; private String privilege; // Constructors /** default constructor */
public AbstractLogin() {
} /** minimal constructor */
public AbstractLogin(String privilege) {
this.privilege = privilege;
} /** full constructor */
public AbstractLogin(String password, String username,String privilege) {
this.password = password;
this.username = username;
} // Property accessors public String getUsername() {
return this.username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return this.password;
} public void setPassword(String password) {
this.password = password;
} public String getPrivilege() {
return this.privilege;
} public void setPrivilege(String privilege) {
this.privilege = privilege;
}}

解决方案 »

  1.   

    错误提示:
    javax.servlet.ServletException: org.hibernate.exception.ConstraintViolationException: could not insert: [com.yourcompany.Login]
    org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause org.hibernate.exception.ConstraintViolationException: could not insert: [com.yourcompany.Login]
    org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:63)
    org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1777)
    org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2178)
    org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:34)
    org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)
    org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:240)
    org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:160)
    org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:95)
    org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184)
    org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
    org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173)
    org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
    org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69)
    org.hibernate.impl.SessionImpl.save(SessionImpl.java:481)
    org.hibernate.impl.SessionImpl.save(SessionImpl.java:476)
    com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:52)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      

  2.   

    检查一下表的束条件,以及HIBERNATE配置正确没有!