-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: Error in saving data with @Joincolum annotation /trasaction/
PostPosted: Tue Jan 20, 2009 8:00 am 
Newbie

Joined: Sat Jan 17, 2009 8:50 am
Posts: 3
Hello All,

I messed up with saving data in a table which have 4 colums with FK. I'm wokring with JPA,Spring and hibernate as a vendor Adaper for persistence provider.

My Problem is my trasaction roll back with batchSaveUpdate error...
Hibernate version:hibernate-annotations-3.4.0.GA,hibernate-distribution-3.3.1.GA-dist, hibernate-entitymanager-3.4.0.GA

Mapping documents:
Code:
package com.speduler.model;

import java.sql.Timestamp;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

import org.hibernate.annotations.Cascade;
import org.hibernate.repackage.cglib.core.GeneratorStrategy;


@Entity
@Table(name = "SERVICEPROVIDER", schema = "S2LLC", uniqueConstraints = @UniqueConstraint(columnNames = "SERVICEPORVIDERID"))
@org.hibernate.annotations.Entity(dynamicInsert=true, dynamicUpdate=true)
public class Serviceprovider implements java.io.Serializable {

   // Fields

   private Long internalspid;
   private Timezonemaster timezonemaster;
   private Majorcategorymaster majorcategorymaster;
   private Serviceplanmaster serviceplanmaster;
   private Statemaster statemaster;
   private Countrymaster countrymaster;
   private String serviceporviderid;
   private String businessname;
   private String website;
   private String videolink;
   private String describebusiness;
   private String describefacility;
   private String registerphone;
   private String registeremail;
   private String paymenttype;
   private String languagesspeaks;
   private String picturemain;
   private String picturelink2;
   private String picturelink3;
   private String picturelink4;
   private String picturelink5;
   private Timestamp dateupdated;
   private String userupdated;
   private String ownerlastname;
   private String ownerfirstname;
   private Timestamp dateregistered;
   private Byte numberoflocations;
   private Byte numberofstaffs;
   private String status;
   private Double overalluserrating;
   private String encryptedpassword;
   private String secretquestion;
   private String secretanswer;
   private Set<Providerstaffs> providerstaffses = new HashSet<Providerstaffs>(
         0);
   private Set<Providerinsurance> providerinsurances = new HashSet<Providerinsurance>(
         0);
   private Set<Providersettings> providersettingses = new HashSet<Providersettings>(
         0);
   private Set<Providerlocations> providerlocationses = new HashSet<Providerlocations>(
         0);

   // Constructors

   /** default constructor */
   public Serviceprovider() {
   }

   /** minimal constructor */
   public Serviceprovider(Long internalspid, Timezonemaster timezonemaster,
         Majorcategorymaster majorcategorymaster,
         Serviceplanmaster serviceplanmaster, Statemaster statemaster,
         Countrymaster countrymaster, String serviceporviderid,
         String businessname, String describebusiness, String registerphone,
         String registeremail, String languagesspeaks) {
      this.internalspid = internalspid;
      this.timezonemaster = timezonemaster;
      this.majorcategorymaster = majorcategorymaster;
      this.serviceplanmaster = serviceplanmaster;
      this.statemaster = statemaster;
      this.countrymaster = countrymaster;
      this.serviceporviderid = serviceporviderid;
      this.businessname = businessname;
      this.describebusiness = describebusiness;
      this.registerphone = registerphone;
      this.registeremail = registeremail;
      this.languagesspeaks = languagesspeaks;
   }

   /** full constructor */
   public Serviceprovider(Long internalspid, Timezonemaster timezonemaster,
         Majorcategorymaster majorcategorymaster,
         Serviceplanmaster serviceplanmaster, Statemaster statemaster,
         Countrymaster countrymaster, String serviceporviderid,
         String businessname, String website, String videolink,
         String describebusiness, String describefacility,
         String registerphone, String registeremail, String paymenttype,
         String languagesspeaks, String picturemain, String picturelink2,
         String picturelink3, String picturelink4, String picturelink5,
         Timestamp dateupdated, String userupdated, String ownerlastname,
         String ownerfirstname, Timestamp dateregistered,
         Byte numberoflocations, Byte numberofstaffs, String status,
         Double overalluserrating, String encryptedpassword,
         String secretquestion, String secretanswer,
         Set<Providerstaffs> providerstaffses,
         Set<Providerinsurance> providerinsurances,
         Set<Providersettings> providersettingses,
         Set<Providerlocations> providerlocationses) {
      this.internalspid = internalspid;
      this.timezonemaster = timezonemaster;
      this.majorcategorymaster = majorcategorymaster;
      this.serviceplanmaster = serviceplanmaster;
      this.statemaster = statemaster;
      this.countrymaster = countrymaster;
      this.serviceporviderid = serviceporviderid;
      this.businessname = businessname;
      this.website = website;
      this.videolink = videolink;
      this.describebusiness = describebusiness;
      this.describefacility = describefacility;
      this.registerphone = registerphone;
      this.registeremail = registeremail;
      this.paymenttype = paymenttype;
      this.languagesspeaks = languagesspeaks;
      this.picturemain = picturemain;
      this.picturelink2 = picturelink2;
      this.picturelink3 = picturelink3;
      this.picturelink4 = picturelink4;
      this.picturelink5 = picturelink5;
      this.dateupdated = dateupdated;
      this.userupdated = userupdated;
      this.ownerlastname = ownerlastname;
      this.ownerfirstname = ownerfirstname;
      this.dateregistered = dateregistered;
      this.numberoflocations = numberoflocations;
      this.numberofstaffs = numberofstaffs;
      this.status = status;
      this.overalluserrating = overalluserrating;
      this.encryptedpassword = encryptedpassword;
      this.secretquestion = secretquestion;
      this.secretanswer = secretanswer;
      this.providerstaffses = providerstaffses;
      this.providerinsurances = providerinsurances;
      this.providersettingses = providersettingses;
      this.providerlocationses = providerlocationses;
   }

   // Property accessors
   @Id
   @GeneratedValue
   @Column(name = "INTERNALSPID", unique = true, nullable = false, precision = 10, scale = 0)
   public Long getInternalspid() {
      return this.internalspid;
   }

   public void setInternalspid(Long internalspid) {
      this.internalspid = internalspid;
   }


   @ManyToOne(fetch = FetchType.EAGER)
   @JoinColumns( {
         @JoinColumn(name = "COUNTRYID", referencedColumnName = "COUNTRYID", nullable = false),
         @JoinColumn(name = "TIMEZONEID", referencedColumnName = "TIMEZONEID", nullable = false) })
   public Timezonemaster getTimezonemaster() {
      return this.timezonemaster;
   }

   public void setTimezonemaster(Timezonemaster timezonemaster) {
      this.timezonemaster = timezonemaster;
   }

   
   @ManyToOne(fetch = FetchType.EAGER )
   @JoinColumns( {
         @JoinColumn(name = "COUNTRYID", referencedColumnName = "COUNTRYID", nullable = false, insertable = false, updatable = false),
         @JoinColumn(name = "MAJORCATEGORY", referencedColumnName = "CATEGORYID", nullable = false, insertable = false, updatable = false) })
   public Majorcategorymaster getMajorcategorymaster() {
      return this.majorcategorymaster;
   }

   public void setMajorcategorymaster(Majorcategorymaster majorcategorymaster) {
      this.majorcategorymaster = majorcategorymaster;
   }


   @ManyToOne(fetch = FetchType.EAGER)
   @JoinColumns( {
         @JoinColumn(name = "COUNTRYID", referencedColumnName = "COUNTRYID", nullable = false, insertable = false, updatable = false),
         @JoinColumn(name = "SERVICEPLAN", referencedColumnName = "SERVICETYPEID", nullable = false, insertable = false, updatable = false) })
   public Serviceplanmaster getServiceplanmaster() {
      return this.serviceplanmaster;
   }

   public void setServiceplanmaster(Serviceplanmaster serviceplanmaster) {
      this.serviceplanmaster = serviceplanmaster;
   }

   
   @ManyToOne(fetch = FetchType.EAGER)
   @JoinColumns( {
         @JoinColumn(name = "COUNTRYID", referencedColumnName = "COUNTRYID", nullable = false, insertable = false, updatable = false),
         @JoinColumn(name = "STATE", referencedColumnName = "STATEID", nullable = false, insertable = false, updatable = false) })
   public Statemaster getStatemaster() {
      return this.statemaster;
   }

   public void setStatemaster(Statemaster statemaster) {
      this.statemaster = statemaster;
   }

   @ManyToOne(fetch = FetchType.EAGER)
   @JoinColumn(name = "COUNTRYID", nullable = false, insertable = false, updatable = false)
   public Countrymaster getCountrymaster() {
      return this.countrymaster;
   }

   public void setCountrymaster(Countrymaster countrymaster) {
      this.countrymaster = countrymaster;
   }

   @Column(name = "SERVICEPORVIDERID", unique = true, nullable = false, length = 25)
   public String getServiceporviderid() {
      return this.serviceporviderid;
   }

   public void setServiceporviderid(String serviceporviderid) {
      this.serviceporviderid = serviceporviderid;
   }

   @Column(name = "BUSINESSNAME", nullable = false, length = 100)
   public String getBusinessname() {
      return this.businessname;
   }

   public void setBusinessname(String businessname) {
      this.businessname = businessname;
   }

   @Column(name = "WEBSITE", length = 100)
   public String getWebsite() {
      return this.website;
   }

   public void setWebsite(String website) {
      this.website = website;
   }

   @Column(name = "VIDEOLINK", length = 500)
   public String getVideolink() {
      return this.videolink;
   }

   public void setVideolink(String videolink) {
      this.videolink = videolink;
   }

   @Column(name = "DESCRIBEBUSINESS", nullable = false, length = 1000)
   public String getDescribebusiness() {
      return this.describebusiness;
   }

   public void setDescribebusiness(String describebusiness) {
      this.describebusiness = describebusiness;
   }

   @Column(name = "DESCRIBEFACILITY", length = 1000)
   public String getDescribefacility() {
      return this.describefacility;
   }

   public void setDescribefacility(String describefacility) {
      this.describefacility = describefacility;
   }

   @Column(name = "REGISTERPHONE", nullable = false, length = 60)
   public String getRegisterphone() {
      return this.registerphone;
   }

   public void setRegisterphone(String registerphone) {
      this.registerphone = registerphone;
   }

   @Column(name = "REGISTEREMAIL", nullable = false, length = 60)
   public String getRegisteremail() {
      return this.registeremail;
   }

   public void setRegisteremail(String registeremail) {
      this.registeremail = registeremail;
   }

   @Column(name = "PAYMENTTYPE", length = 100 )
   public String getPaymenttype() {
      return this.paymenttype;
   }

   public void setPaymenttype(String paymenttype) {
      this.paymenttype = paymenttype;
   }

   @Column(name = "LANGUAGESSPEAKS", nullable = false, length = 60)
   public String getLanguagesspeaks() {
      return this.languagesspeaks;
   }

   public void setLanguagesspeaks(String languagesspeaks) {
      this.languagesspeaks = languagesspeaks;
   }

   @Column(name = "PICTUREMAIN")
   public String getPicturemain() {
      return this.picturemain;
   }

   public void setPicturemain(String picturemain) {
      this.picturemain = picturemain;
   }

   @Column(name = "PICTURELINK2")
   public String getPicturelink2() {
      return this.picturelink2;
   }

   public void setPicturelink2(String picturelink2) {
      this.picturelink2 = picturelink2;
   }

   @Column(name = "PICTURELINK3")
   public String getPicturelink3() {
      return this.picturelink3;
   }

   public void setPicturelink3(String picturelink3) {
      this.picturelink3 = picturelink3;
   }

   @Column(name = "PICTURELINK4")
   public String getPicturelink4() {
      return this.picturelink4;
   }

   public void setPicturelink4(String picturelink4) {
      this.picturelink4 = picturelink4;
   }

   @Column(name = "PICTURELINK5")
   public String getPicturelink5() {
      return this.picturelink5;
   }

   public void setPicturelink5(String picturelink5) {
      this.picturelink5 = picturelink5;
   }

   //@Temporal(TemporalType.TIMESTAMP)
   @Column(name = "DATEUPDATED", length = 7)
   public Timestamp getDateupdated() {
      return this.dateupdated;
   }

   public void setDateupdated(Timestamp dateupdated) {
      this.dateupdated = dateupdated;
   }

   @Column(name = "USERUPDATED", length = 60)
   public String getUserupdated() {
      return this.userupdated;
   }

   public void setUserupdated(String userupdated) {
      this.userupdated = userupdated;
   }

   @Column(name = "OWNERLASTNAME", length = 30)
   public String getOwnerlastname() {
      return this.ownerlastname;
   }

   public void setOwnerlastname(String ownerlastname) {
      this.ownerlastname = ownerlastname;
   }

   @Column(name = "OWNERFIRSTNAME", length = 30)
   public String getOwnerfirstname() {
      return this.ownerfirstname;
   }

   public void setOwnerfirstname(String ownerfirstname) {
      this.ownerfirstname = ownerfirstname;
   }

   //@Temporal(TemporalType.TIMESTAMP)
   @Column(name = "DATEREGISTERED", length = 7)
   public Timestamp getDateregistered() {
      return this.dateregistered;
   }

   public void setDateregistered(Timestamp dateregistered) {
      this.dateregistered = dateregistered;
   }

   @Column(name = "NUMBEROFLOCATIONS", precision = 2, scale = 0)
   public Byte getNumberoflocations() {
      return this.numberoflocations;
   }

   public void setNumberoflocations(Byte numberoflocations) {
      this.numberoflocations = numberoflocations;
   }

   @Column(name = "NUMBEROFSTAFFS", precision = 2, scale = 0)
   public Byte getNumberofstaffs() {
      return this.numberofstaffs;
   }

   public void setNumberofstaffs(Byte numberofstaffs) {
      this.numberofstaffs = numberofstaffs;
   }

   @Column(name = "STATUS", length = 1)
   public String getStatus() {
      return this.status;
   }

   public void setStatus(String status) {
      this.status = status;
   }

   @Column(name = "OVERALLUSERRATING", precision = 2, scale = 1)
   public Double getOveralluserrating() {
      return this.overalluserrating;
   }

   public void setOveralluserrating(Double overalluserrating) {
      this.overalluserrating = overalluserrating;
   }

   @Column(name = "ENCRYPTEDPASSWORD", length = 50)
   public String getEncryptedpassword() {
      return this.encryptedpassword;
   }

   public void setEncryptedpassword(String encryptedpassword) {
      this.encryptedpassword = encryptedpassword;
   }

   @Column(name = "SECRETQUESTION", length = 50)
   public String getSecretquestion() {
      return this.secretquestion;
   }

   public void setSecretquestion(String secretquestion) {
      this.secretquestion = secretquestion;
   }

   @Column(name = "SECRETANSWER", length = 50)
   public String getSecretanswer() {
      return this.secretanswer;
   }

   public void setSecretanswer(String secretanswer) {
      this.secretanswer = secretanswer;
   }

   @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "serviceprovider")
   public Set<Providerstaffs> getProviderstaffses() {
      return this.providerstaffses;
   }

   public void setProviderstaffses(Set<Providerstaffs> providerstaffses) {
      this.providerstaffses = providerstaffses;
   }

   @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "serviceprovider")
   public Set<Providerinsurance> getProviderinsurances() {
      return this.providerinsurances;
   }

   public void setProviderinsurances(Set<Providerinsurance> providerinsurances) {
      this.providerinsurances = providerinsurances;
   }

   @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "serviceprovider")
   public Set<Providersettings> getProvidersettingses() {
      return this.providersettingses;
   }

   public void setProvidersettingses(Set<Providersettings> providersettingses) {
      this.providersettingses = providersettingses;
   }

   @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "serviceprovider")
   public Set<Providerlocations> getProviderlocationses() {
      return this.providerlocationses;
   }

   public void setProviderlocationses(
         Set<Providerlocations> providerlocationses) {
      this.providerlocationses = providerlocationses;
   }

}



Code between sessionFactory.openSession() and session.close():
Code:
@Transactional
   public void saveSP(Serviceprovider entity,
         byte countryFK1,String stateFK2,byte MajorcFK3,
         double timeZFK){
      try {      
            entity.setCountrymaster(entityManager.getReference(Countrymaster.class, countryFK1));
            Statemaster sm=entityManager.getReference(Statemaster.class, new StatemasterId(countryFK1,stateFK2));
            entity.setStatemaster(sm);
            System.out.println(entity.getStatemaster().getDescription());
            entity.setTimezonemaster(entityManager.getReference(Timezonemaster.class, new TimezonemasterId(countryFK1,timeZFK)));
            Majorcategorymaster mcm=entityManager.getReference(Majorcategorymaster.class, new MajorcategorymasterId(countryFK1,MajorcFK3));
            entity.setMajorcategorymaster(mcm);
            System.out.println(entity.getMajorcategorymaster().getDescription());
            entityManager.persist(entity);
      } catch (Exception e) {
         e.printStackTrace();
      }
      
   }

   
   private EntityManager entityManager;

   @PersistenceContext
   public void setEntityManager(EntityManager entityManager) {
      this.entityManager = entityManager;
      
   }
   public EntityManager getEntityManager() {
      return entityManager;
   }


I'm trying to run this with my main class :
Code:
public class ServiceprovidesMain {
   byte countryid=1;
   String SERVICEPROVIDERID="akirti1";
   String BUSINESSNAME="sw1";
   String STATE="AL";
   double TIMEZONE=-5;
   byte MAJORCATEGORY=1;
   byte MAJORSPECIALITY=1;
   byte SERVICEPALN=1;
   String RegisterPHONE="909090909";
   String RegisterEMAIL="akirti@gmailcom";
   byte NumberOfLOCA=1;
   byte NumberOfSTAFF=1;
   String EncryptedPASS="pasword";
   String DESCBUSINESS="software java";
   private BeanFactory factory;
   public void runtst(Serviceprovider entity){
      IServiceproviderDAO spdaoint=(IServiceproviderDAO)factory.getBean("IServiceproviderDAO");
      System.out.println(spdaoint+"<---- grrr");
      spdaoint.save(entity);
      
   }

public void run3(){
      ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext( new String[] {"applicationContext-dao.xml","applicationContext-service.xml", "applicationContext-resources.xml"});
      factory= (BeanFactory)appContext;
      System.out.println(factory+"<----BEAN FACTORY");
      IServiceproviderDAO spdaoint=(IServiceproviderDAO)factory.getBean("IServiceproviderDAO");
      Serviceprovider sp=new Serviceprovider();
      sp.setServiceporviderid(SERVICEPROVIDERID);
      sp.setBusinessname(BUSINESSNAME);
      sp.setRegisterphone(RegisterPHONE);
      sp.setRegisteremail(RegisterEMAIL);
      sp.setNumberoflocations(NumberOfLOCA);
      sp.setNumberofstaffs(NumberOfSTAFF);
      sp.setEncryptedpassword(EncryptedPASS);
      sp.setDescribebusiness(DESCBUSINESS);
      sp.setLanguagesspeaks("HINDI");
      spdaoint.saveSP(sp, countryid, STATE, MAJORCATEGORY, TIMEZONE);

      
   }
   
   
   public static void main(String[] args) {
      try {
         new ServiceprovidesMain().run3();
      } catch (Exception e) {
         e.printStackTrace();
      }
      
   }
}


My stack trace of exception that occurs are as follows:
Code:
log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
com.speduler.dao.impl.SpAdminDAOimpl@1c6a99d<-----ispadmindao----
org.springframework.context.support.ClassPathXmlApplicationContext@145d068: display name [org.springframework.context.support.ClassPathXmlApplicationContext@145d068]; startup date [Tue Jan 20 17:20:35 IST 2009]; root of context hierarchy<----BEAN FACTORY
Hibernate: select statemaste0_.COUNTRYID as COUNTRYID0_0_, statemaste0_.STATEID as STATEID0_0_, statemaste0_.DESCRIPTION as DESCRIPT3_0_0_ from S2LLC.STATEMASTER statemaste0_ where statemaste0_.COUNTRYID=? and statemaste0_.STATEID=?
Alabama
Hibernate: select majorcateg0_.CATEGORYID as CATEGORYID23_0_, majorcateg0_.COUNTRYID as COUNTRYID23_0_, majorcateg0_.DESCRIPTION as DESCRIPT3_23_0_ from S2LLC.MAJORCATEGORYMASTER majorcateg0_ where majorcateg0_.CATEGORYID=? and majorcateg0_.COUNTRYID=?
Artist
Hibernate: select hibernate_sequence.nextval from dual
Hibernate: insert into S2LLC.SERVICEPROVIDER (BUSINESSNAME, DESCRIBEBUSINESS, ENCRYPTEDPASSWORD, LANGUAGESSPEAKS, NUMBEROFLOCATIONS, NUMBEROFSTAFFS, REGISTEREMAIL, REGISTERPHONE, SERVICEPORVIDERID, COUNTRYID, TIMEZONEID, INTERNALSPID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Error while commiting the transaction
Caused by: javax.persistence.RollbackException: Error while commiting the transaction
   at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:71)
   at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:434)
   at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
   at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
   at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
   at $Proxy25.saveSP(Unknown Source)
   at mainmethod.ServiceprovidesMain.run3(ServiceprovidesMain.java:239)
   at mainmethod.ServiceprovidesMain.main(ServiceprovidesMain.java:247)
Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
   at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
   at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
   at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
   at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
   at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
   at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
   at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
   at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
   at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:54)
   ... 10 more
Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("S2LLC"."SERVICEPROVIDER"."MAJORCATEGORY")

   at oracle.jdbc.dbaccess.DBError.throwBatchUpdateException(DBError.java:458)
   at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:3907)
   at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
   at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
   ... 18 more




Name and version of the database you are using:
I'm using Oracle10g


The generated SQL (show_sql=true):


com.speduler.dao.impl.SpAdminDAOimpl@1c6a99d<-----ispadmindao----
org.springframework.context.support.ClassPathXmlApplicationContext@145d068: display name [org.springframework.context.support.ClassPathXmlApplicationContext@145d068]; startup date [Tue Jan 20 17:20:35 IST 2009]; root of context hierarchy<----BEAN FACTORY
Hibernate: select statemaste0_.COUNTRYID as COUNTRYID0_0_, statemaste0_.STATEID as STATEID0_0_, statemaste0_.DESCRIPTION as DESCRIPT3_0_0_ from S2LLC.STATEMASTER statemaste0_ where statemaste0_.COUNTRYID=? and statemaste0_.STATEID=?
Alabama
Hibernate: select majorcateg0_.CATEGORYID as CATEGORYID23_0_, majorcateg0_.COUNTRYID as COUNTRYID23_0_, majorcateg0_.DESCRIPTION as DESCRIPT3_23_0_ from S2LLC.MAJORCATEGORYMASTER majorcateg0_ where majorcateg0_.CATEGORYID=? and majorcateg0_.COUNTRYID=?
Artist
Hibernate: select hibernate_sequence.nextval from dual
Hibernate: insert into S2LLC.SERVICEPROVIDER (BUSINESSNAME, DESCRIBEBUSINESS, ENCRYPTEDPASSWORD, LANGUAGESSPEAKS, NUMBEROFLOCATIONS, NUMBEROFSTAFFS, REGISTEREMAIL, REGISTERPHONE, SERVICEPORVIDERID, COUNTRYID, TIMEZONEID, INTERNALSPID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)


Debug level Hibernate log excerpt:
I saw during debugging that my entity which I want to save doesn't have the referencey of proerties like majorCategoryMastet,TimeZonemaster.. which are FK in this table. appears null while I'm setting all the values after entityManager.getReference(*class,new Object(id)); but still its null.

It seems like my select and insert appears in different different entityManager. i'm not sure but may be.. please help in resolving this issue.. i'm unable to deal with this. how to solve..

once I tried to to remove my annotaion @Manytoone @JoinColum(....)
from insertable=false, updatable=false but then my application not loaded and give error at loading thine and say no entityManagerFactory and error in annotation for insertable=false ,updatable=false.

how to deal with ..please help me. I'm new to all this but I'm trying hard to resolve this..

TIA
regards
Akirti

Read this: http://hibernate.org/42.html

_________________
kirti


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 20, 2009 8:04 am 
Newbie

Joined: Sat Jan 17, 2009 8:50 am
Posts: 3
Hi All,

my mapping of

Code:
@ManyToOne(fetch = FetchType.EAGER)
   @JoinColumns( {
         @JoinColumn(name = "COUNTRYID", referencedColumnName = "COUNTRYID", nullable = false, insertable = false, updatable = false),
         @JoinColumn(name = "STATE", referencedColumnName = "STATEID", nullable = false, insertable = false, updatable = false) })
   public Statemaster getStatemaster() {
      return this.statemaster;
   }



Code:
@ManyToOne(fetch = FetchType.LAZY)
   @JoinColumns( {
         @JoinColumn(name = "COUNTRYID", referencedColumnName = "COUNTRYID", nullable = false, insertable = false, updatable = false),
         @JoinColumn(name = "STATE", referencedColumnName = "STATEID", nullable = false, insertable = false, updatable = false) })
   public Statemaster getStatemaster() {
      return this.statemaster;
   }



I tried with both.. but no effect.

_________________
kirti


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.