简体   繁体   English

Spring MVC.java.sql.BatchUpdateException中的休眠错误:违反了唯一约束(OVERFLOW.SYS_C004914)

[英]hibernate error in spring MVC.java.sql.BatchUpdateException: unique constraint (OVERFLOW.SYS_C004914) violated

I am trying to save details of users through registration form.i am using 3 model classes one is user,roles,person.The primary key in user table is foreign key in both roles and person tables. 我正在尝试通过注册表单保存用户的详细信息。我正在使用3个模型类,一个是user,roles,person。user表中的主键是角色表和person表中的外键。 I used OneToOne mapping in both roles and person. 我在角色和人员中都使用了OneToOne映射。

Here is my User Model Class 这是我的User模型类

@Entity
@Table(name="Login")
public class User{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;

private String username;
private String password;

//Rest are getters and Setters  

My Person model class is 我的Person模型班是

@Entity
public class Person{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private  int pid;
private String email;
private String Gender;
@OneToOne
private User uid;

My Roles table is 我的Roles表是

@Entity 
@Table(name = "Auth")
public class Roles implements Serializable{
@Id
private  int id;
@Column(name = "Authority")
private String role;
@OneToOne
private User u_id;

In my dao i am trying to insert these.. 在我的岛上,我试图插入这些。

 public static boolean register(Person p,User u,Roles r)
 {
 Session s=sf.openSession();
 s.beginTransaction();
 s.save(u);
 s.save(p); 
 s.save(r);
 s.getTransaction().commit();
 s.flush();
 s.close();

 return true;

The Exception I am Getting is 我得到的例外是

SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/spring7]
        threw exception [Request processing failed;
        nested exception is org.hibernate.exception.ConstraintViolationException:
            Could not execute JDBC batch update] 
        with root cause java.sql.BatchUpdateException: ORA-00001: 
            unique constraint (OVERFLOW.SYS_C004914) violated

at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10657)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.rahul.dao.Dao.register(Dao.java:40)
at com.rahul.controller.LoginController.reg(LoginController.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

from the inormation given i can find out below 从给定的信息中我可以找到以下内容

@GeneratedValue(strategy = GenerationType.AUTO) is missing for id field in Role entity. 角色实体中的ID字段缺少@GeneratedValue(strategy = GenerationType.AUTO)。 Though i think auto is default value.But still its worth to cross check. 虽然我认为auto是默认值。但仍然值得对其进行交叉检查。

As error clearly says its unique key constraint voilation. 就像错误清楚地表明了其独特的关键约束缺陷。 My guess is there is some check constraint defined in defined in your DB. 我的猜测是您的数据库中定义了一些检查约束。 Duplicate values are allowed for foreign keys. 外键允许重复值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 违反了处理唯一约束(SYSTEM.SYS_C006997) - Handling unique constraint (SYSTEM.SYS_C006997) violated 读取CSV文件(独立记录)并将其使用Java将其写入Oracle-ORA-00001:违反了唯一约束(DUMMY.SYS_C008271) - Read CSV file (Distinct Record) and write it to Oracle using Java - ORA-00001: unique constraint (DUMMY.SYS_C008271) violated 休眠ORA-02292:违反完整性约束(ROOT.SYS_C007062)-找到子记录 - Hibernate ORA-02292: integrity constraint (ROOT.SYS_C007062) violated - child record found java.sql.BatchUpdateException:ORA-00001:生成主键时的唯一约束 - java.sql.BatchUpdateException: ORA-00001: unique constraint while we generating primary key Hibernate 在 Spring Boot 项目中两次将数据插入 Join Table 导致“ORA-00001:违反唯一约束” - Hibernate inserts data into Join Table twice causing "ORA-00001: unique constraint violated" in Spring Boot project java.sql.BatchUpdateException:无法添加或更新子行:外键约束失败ERROR - java.sql.BatchUpdateException: Cannot add or update a child row: a foreign key constraint fails ERROR 违反了唯一约束? - unique constraint violated? 违反唯一约束-调试 - Unique constraint violated - debug java.sql.sqlintegrityconstraintviolationexception ora-00001唯一约束(scott.table1_pk)已违反 - java.sql.sqlintegrityconstraintviolationexception ora-00001 unique constraint(scott.table1_pk)violated HIbernate: java.sql.BatchUpdateException 时持久化新的 ZA8CFDE63311C49EB2ACZ6B891 - HIbernate: java.sql.BatchUpdateException when persisting new object
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM