gudii9
asked on
Hibernate Annotation Example id null issue
Hi,
I am using annotation tags within hibernate example 'CreateData.java'class to do simple insert into oracle 10g database table 'student2'. IP am getting error like
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotat ions.Versi on).
log4j:WARN Please initialize the log4j system properly.
Hibernate: insert into student2 (scourse, sname, sroll) values (?, ?, ?)
Exception in thread "main" org.hibernate.exception.Co nstraintVi olationExc eption: could not insert: [ri.Student2]
at org.hibernate.exception.SQ LStateConv erter.conv ert(SQLSta teConverte r.java:71)
at org.hibernate.exception.JD BCExceptio nHelper.co nvert(JDBC ExceptionH elper.java :43)
at org.hibernate.id.insert.Ab stractSele ctingDeleg ate.perfor mInsert(Ab stractSele ctingDeleg ate.java:4 0)
at org.hibernate.persister.en tity.Abstr actEntityP ersister.i nsert(Abst ractEntity Persister. java:2158)
at org.hibernate.persister.en tity.Abstr actEntityP ersister.i nsert(Abst ractEntity Persister. java:2638)
at org.hibernate.action.Entit yIdentityI nsertActio n.execute( EntityIden tityInsert Action.jav a:48)
at org.hibernate.engine.Actio nQueue.exe cute(Actio nQueue.jav a:250)
at org.hibernate.event.def.Ab stractSave EventListe ner.perfor mSaveOrRep licate(Abs tractSaveE ventListen er.java:29 8)
at org.hibernate.event.def.Ab stractSave EventListe ner.perfor mSave(Abst ractSaveEv entListene r.java:181 )
at org.hibernate.event.def.Ab stractSave EventListe ner.saveWi thGenerate dId(Abstra ctSaveEven tListener. java:107)
at org.hibernate.event.def.De faultSaveO rUpdateEve ntListener .saveWithG eneratedOr RequestedI d(DefaultS aveOrUpdat eEventList ener.java: 187)
at org.hibernate.event.def.De faultSaveE ventListen er.saveWit hGenerated OrRequeste dId(Defaul tSaveEvent Listener.j ava:33)
at org.hibernate.event.def.De faultSaveO rUpdateEve ntListener .entityIsT ransient(D efaultSave OrUpdateEv entListene r.java:172 )
at org.hibernate.event.def.De faultSaveE ventListen er.perform SaveOrUpda te(Default SaveEventL istener.ja va:27)
at org.hibernate.event.def.De faultSaveO rUpdateEve ntListener .onSaveOrU pdate(Defa ultSaveOrU pdateEvent Listener.j ava:70)
at org.hibernate.impl.Session Impl.fireS ave(Sessio nImpl.java :535)
at org.hibernate.impl.Session Impl.save( SessionImp l.java:523 )
at org.hibernate.impl.Session Impl.save( SessionImp l.java:519 )
at sun.reflect.NativeMethodAc cessorImpl .invoke0(N ative Method)
at sun.reflect.NativeMethodAc cessorImpl .invoke(Un known Source)
at sun.reflect.DelegatingMeth odAccessor Impl.invok e(Unknown Source)
at java.lang.reflect.Method.i nvoke(Unkn own Source)
at org.hibernate.context.Thre adLocalSes sionContex t$Transact ionProtect ionWrapper .invoke(Th readLocalS essionCont ext.java:3 01)
at $Proxy8.save(Unknown Source)
at ri.CreateData.main(CreateD ata.java:2 2)
Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into ("DELIVERYTEST7"."STUDENT2 "."ID")
at oracle.jdbc.dbaccess.DBErr or.throwSq lException (DBError.j ava:134)
at oracle.jdbc.ttc7.TTIoer.pr ocessError (TTIoer.ja va:289)
at oracle.jdbc.ttc7.Oall7.rec eive(Oall7 .java:590)
at oracle.jdbc.ttc7.TTC7Proto col.doOall 7(TTC7Prot ocol.java: 1973)
at oracle.jdbc.ttc7.TTC7Proto col.parseE xecuteFetc h(TTC7Prot ocol.java: 1119)
at oracle.jdbc.driver.OracleS tatement.e xecuteNonQ uery(Oracl eStatement .java:2191 )
at oracle.jdbc.driver.OracleS tatement.d oExecuteOt her(Oracle Statement. java:2064)
at oracle.jdbc.driver.OracleS tatement.d oExecuteWi thTimeout( OracleStat ement.java :2989)
at oracle.jdbc.driver.OracleP reparedSta tement.exe cuteUpdate (OraclePre paredState ment.java: 658)
at org.hibernate.id.insert.Ab stractSele ctingDeleg ate.perfor mInsert(Ab stractSele ctingDeleg ate.java:3 3)
... 22 more
My createData.jaava looks like
package ri;
import org.hibernate.Session;
import org.hibernate.SessionFacto ry;
public class CreateData {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
SessionFactory sessFact = HibernateUtil.getSessionFa ctory();
Session sess = sessFact.getCurrentSession ();
org.hibernate.Transaction tr = sess.beginTransaction();
Student2 stu = new Student2();
stu.setId(1);
stu.setSname("sai");
stu.setSroll(100211);
stu.setScourse("M.S");
sess.save(stu);//Save data
tr.commit();
System.out.println("Succes sfully inserted");
//sess.close();
}
}
hibernate-cfg class looks like
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_cl ass">oracl e.jdbc.dri ver.Oracle Driver</pr operty>
<property name="connection.url">jdbc :oracle:th in:@localh ost:1521:o rcl</prope rty>
<property name="connection.username" >deliveryt est7</prop erty>
<property name="connection.password" >dbpasswor d</propert y>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size ">1</prope rty>
<!-- SQL dialect -->
<property name="dialect">org.hiberna te.dialect .MySQLDial ect</prope rty>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_cont ext_class" >thread</p roperty>
<!-- Disable the second-level cache -->
<property name="cache.provider_class ">org.hibe rnate.cach e.NoCacheP rovider</p roperty>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</prop erty>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">update </property >
<mapping class="roseindia.Student2" />
</session-factory>
</hibernate-configuration>
student2.java class looks like
package ri;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Generate dValue;
import javax.persistence.Id;
import javax.persistence.Table;;
@Entity
@Table(name = "student2")
public class Student2 implements Serializable{
@Id
@GeneratedValue
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name="sname", nullable=false,length=40)
private String sname;
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
@Column(name="sroll",nulla ble=false)
private int sroll;
public int getSroll() {
return sroll;
}
public void setSroll(int sroll) {
this.sroll = sroll;
}
@Column(name="scourse",nul lable=fals e,length=1 0)
private String scourse;
public String getScourse() {
return scourse;
}
public void setScourse(String scourse) {
this.scourse = scourse;
}
}
within oracle 10g my student2 table creation syntax looks like
CREATE TABLE student2(
id VARCHAR2(20 BYTE) primary key NOT NULL,
sname varchar(40) NOT NULL,
sroll int(11) NOT NULL,
scourse varchar(10) NOT NULL,
) ;
I am not sure why it is complaining about id is not null.
How can i resolve this issue. Any ideas, suggestions, links, resources, sample code highlly appreciated. Thanks in advance
I am using annotation tags within hibernate example 'CreateData.java'class to do simple insert into oracle 10g database table 'student2'. IP am getting error like
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotat
log4j:WARN Please initialize the log4j system properly.
Hibernate: insert into student2 (scourse, sname, sroll) values (?, ?, ?)
Exception in thread "main" org.hibernate.exception.Co
at org.hibernate.exception.SQ
at org.hibernate.exception.JD
at org.hibernate.id.insert.Ab
at org.hibernate.persister.en
at org.hibernate.persister.en
at org.hibernate.action.Entit
at org.hibernate.engine.Actio
at org.hibernate.event.def.Ab
at org.hibernate.event.def.Ab
at org.hibernate.event.def.Ab
at org.hibernate.event.def.De
at org.hibernate.event.def.De
at org.hibernate.event.def.De
at org.hibernate.event.def.De
at org.hibernate.event.def.De
at org.hibernate.impl.Session
at org.hibernate.impl.Session
at org.hibernate.impl.Session
at sun.reflect.NativeMethodAc
at sun.reflect.NativeMethodAc
at sun.reflect.DelegatingMeth
at java.lang.reflect.Method.i
at org.hibernate.context.Thre
at $Proxy8.save(Unknown Source)
at ri.CreateData.main(CreateD
Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into ("DELIVERYTEST7"."STUDENT2
at oracle.jdbc.dbaccess.DBErr
at oracle.jdbc.ttc7.TTIoer.pr
at oracle.jdbc.ttc7.Oall7.rec
at oracle.jdbc.ttc7.TTC7Proto
at oracle.jdbc.ttc7.TTC7Proto
at oracle.jdbc.driver.OracleS
at oracle.jdbc.driver.OracleS
at oracle.jdbc.driver.OracleS
at oracle.jdbc.driver.OracleP
at org.hibernate.id.insert.Ab
... 22 more
My createData.jaava looks like
package ri;
import org.hibernate.Session;
import org.hibernate.SessionFacto
public class CreateData {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
SessionFactory sessFact = HibernateUtil.getSessionFa
Session sess = sessFact.getCurrentSession
org.hibernate.Transaction tr = sess.beginTransaction();
Student2 stu = new Student2();
stu.setId(1);
stu.setSname("sai");
stu.setSroll(100211);
stu.setScourse("M.S");
sess.save(stu);//Save data
tr.commit();
System.out.println("Succes
//sess.close();
}
}
hibernate-cfg class looks like
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_cl
<property name="connection.url">jdbc
<property name="connection.username"
<property name="connection.password"
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size
<!-- SQL dialect -->
<property name="dialect">org.hiberna
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_cont
<!-- Disable the second-level cache -->
<property name="cache.provider_class
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</prop
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">update
<mapping class="roseindia.Student2"
</session-factory>
</hibernate-configuration>
student2.java class looks like
package ri;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Generate
import javax.persistence.Id;
import javax.persistence.Table;;
@Entity
@Table(name = "student2")
public class Student2 implements Serializable{
@Id
@GeneratedValue
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name="sname", nullable=false,length=40)
private String sname;
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
@Column(name="sroll",nulla
private int sroll;
public int getSroll() {
return sroll;
}
public void setSroll(int sroll) {
this.sroll = sroll;
}
@Column(name="scourse",nul
private String scourse;
public String getScourse() {
return scourse;
}
public void setScourse(String scourse) {
this.scourse = scourse;
}
}
within oracle 10g my student2 table creation syntax looks like
CREATE TABLE student2(
id VARCHAR2(20 BYTE) primary key NOT NULL,
sname varchar(40) NOT NULL,
sroll int(11) NOT NULL,
scourse varchar(10) NOT NULL,
) ;
I am not sure why it is complaining about id is not null.
How can i resolve this issue. Any ideas, suggestions, links, resources, sample code highlly appreciated. Thanks in advance
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi,
I tried
>>>stu.setId(2);
still getting error like
Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into ("DELIVERYTEST7"."STUDENT2 "."ID")
at oracle.jdbc.dbaccess.DBErr or.throwSq lException (DBError.j ava:134)
>>>Since the id is generated do you need to call set on that?
id is already set as per this code.
student2.java class looks like
package ri;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Generate dValue;
import javax.persistence.Id;
import javax.persistence.Table;;
@Entity
@Table(name = "student2")
public class Student2 implements Serializable{
@Id
@GeneratedValue
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name="sname", nullable=false,length=40)
private String sname;
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
@Column(name="sroll",nulla ble=false)
private int sroll;
public int getSroll() {
return sroll;
}
public void setSroll(int sroll) {
this.sroll = sroll;
}
@Column(name="scourse",nul lable=fals e,length=1 0)
private String scourse;
public String getScourse() {
return scourse;
}
public void setScourse(String scourse) {
this.scourse = scourse;
}
}
Not sure where else to set. Please advise
I tried
>>>stu.setId(2);
still getting error like
Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into ("DELIVERYTEST7"."STUDENT2
at oracle.jdbc.dbaccess.DBErr
>>>Since the id is generated do you need to call set on that?
id is already set as per this code.
student2.java class looks like
package ri;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Generate
import javax.persistence.Id;
import javax.persistence.Table;;
@Entity
@Table(name = "student2")
public class Student2 implements Serializable{
@Id
@GeneratedValue
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name="sname", nullable=false,length=40)
private String sname;
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
@Column(name="sroll",nulla
private int sroll;
public int getSroll() {
return sroll;
}
public void setSroll(int sroll) {
this.sroll = sroll;
}
@Column(name="scourse",nul
private String scourse;
public String getScourse() {
return scourse;
}
public void setScourse(String scourse) {
this.scourse = scourse;
}
}
Not sure where else to set. Please advise
Can you try executing the code after removing the setId() call?
@Id
@GeneratedValue
means u no need to set the value ...
its automatically generated!!
@GeneratedValue
means u no need to set the value ...
its automatically generated!!
what is this???
@Id
@GeneratedValue
private int id;
bean define in but table varchar
id VARCHAR2(20 BYTE) primary key NOT NULL,
@Id
@GeneratedValue
private int id;
bean define in but table varchar
id VARCHAR2(20 BYTE) primary key NOT NULL,
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi,
>>>means u no need to set the value ...
i commented the setter code in student2.java
I also commented the code within CreateData.java like
Student2 stu = new Student2();
//stu.setId(2);
still getting same error as earlier...
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotat ions.Versi on).
log4j:WARN Please initialize the log4j system properly.
Hibernate: insert into student2 (scourse, sname, sroll) values (?, ?, ?)
Exception in thread "main" org.hibernate.exception.Co nstraintVi olationExc eption: could not insert: [roseindia.Student2]
at org.hibernate.exception.SQ LStateConv erter.conv ert(SQLSta teConverte r.java:71)
at org.hibernate.exception.JD BCExceptio nHelper.co nvert(JDBC ExceptionH elper.java :43)
at org.hibernate.id.insert.Ab stractSele ctingDeleg ate.perfor mInsert(Ab stractSele ctingDeleg ate.java:4 0)
at org.hibernate.persister.en tity.Abstr actEntityP ersister.i nsert(Abst ractEntity Persister. java:2158)
at org.hibernate.persister.en tity.Abstr actEntityP ersister.i nsert(Abst ractEntity Persister. java:2638)
at org.hibernate.action.Entit yIdentityI nsertActio n.execute( EntityIden tityInsert Action.jav a:48)
at org.hibernate.engine.Actio nQueue.exe cute(Actio nQueue.jav a:250)
at org.hibernate.event.def.Ab stractSave EventListe ner.perfor mSaveOrRep licate(Abs tractSaveE ventListen er.java:29 8)
at org.hibernate.event.def.Ab stractSave EventListe ner.perfor mSave(Abst ractSaveEv entListene r.java:181 )
at org.hibernate.event.def.Ab stractSave EventListe ner.saveWi thGenerate dId(Abstra ctSaveEven tListener. java:107)
at org.hibernate.event.def.De faultSaveO rUpdateEve ntListener .saveWithG eneratedOr RequestedI d(DefaultS aveOrUpdat eEventList ener.java: 187)
at org.hibernate.event.def.De faultSaveE ventListen er.saveWit hGenerated OrRequeste dId(Defaul tSaveEvent Listener.j ava:33)
at org.hibernate.event.def.De faultSaveO rUpdateEve ntListener .entityIsT ransient(D efaultSave OrUpdateEv entListene r.java:172 )
at org.hibernate.event.def.De faultSaveE ventListen er.perform SaveOrUpda te(Default SaveEventL istener.ja va:27)
at org.hibernate.event.def.De faultSaveO rUpdateEve ntListener .onSaveOrU pdate(Defa ultSaveOrU pdateEvent Listener.j ava:70)
at org.hibernate.impl.Session Impl.fireS ave(Sessio nImpl.java :535)
at org.hibernate.impl.Session Impl.save( SessionImp l.java:523 )
at org.hibernate.impl.Session Impl.save( SessionImp l.java:519 )
at sun.reflect.NativeMethodAc cessorImpl .invoke0(N ative Method)
at sun.reflect.NativeMethodAc cessorImpl .invoke(Un known Source)
at sun.reflect.DelegatingMeth odAccessor Impl.invok e(Unknown Source)
at java.lang.reflect.Method.i nvoke(Unkn own Source)
at org.hibernate.context.Thre adLocalSes sionContex t$Transact ionProtect ionWrapper .invoke(Th readLocalS essionCont ext.java:3 01)
at $Proxy8.save(Unknown Source)
at roseindia.CreateData.main( CreateData .java:22)
Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into ("DELIVERYTEST7"."STUDENT2 "."ID")
at oracle.jdbc.dbaccess.DBErr or.throwSq lException (DBError.j ava:134)
at oracle.jdbc.ttc7.TTIoer.pr ocessError (TTIoer.ja va:289)
at oracle.jdbc.ttc7.Oall7.rec eive(Oall7 .java:590)
at oracle.jdbc.ttc7.TTC7Proto col.doOall 7(TTC7Prot ocol.java: 1973)
at oracle.jdbc.ttc7.TTC7Proto col.parseE xecuteFetc h(TTC7Prot ocol.java: 1119)
at oracle.jdbc.driver.OracleS tatement.e xecuteNonQ uery(Oracl eStatement .java:2191 )
at oracle.jdbc.driver.OracleS tatement.d oExecuteOt her(Oracle Statement. java:2064)
at oracle.jdbc.driver.OracleS tatement.d oExecuteWi thTimeout( OracleStat ement.java :2989)
at oracle.jdbc.driver.OracleP reparedSta tement.exe cuteUpdate (OraclePre paredState ment.java: 658)
at org.hibernate.id.insert.Ab stractSele ctingDeleg ate.perfor mInsert(Ab stractSele ctingDeleg ate.java:3 3)
... 22 more
I suspect on table creation syntax is auto-increment or sequence etc is missing? please advise
>>>means u no need to set the value ...
i commented the setter code in student2.java
I also commented the code within CreateData.java like
Student2 stu = new Student2();
//stu.setId(2);
still getting same error as earlier...
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotat
log4j:WARN Please initialize the log4j system properly.
Hibernate: insert into student2 (scourse, sname, sroll) values (?, ?, ?)
Exception in thread "main" org.hibernate.exception.Co
at org.hibernate.exception.SQ
at org.hibernate.exception.JD
at org.hibernate.id.insert.Ab
at org.hibernate.persister.en
at org.hibernate.persister.en
at org.hibernate.action.Entit
at org.hibernate.engine.Actio
at org.hibernate.event.def.Ab
at org.hibernate.event.def.Ab
at org.hibernate.event.def.Ab
at org.hibernate.event.def.De
at org.hibernate.event.def.De
at org.hibernate.event.def.De
at org.hibernate.event.def.De
at org.hibernate.event.def.De
at org.hibernate.impl.Session
at org.hibernate.impl.Session
at org.hibernate.impl.Session
at sun.reflect.NativeMethodAc
at sun.reflect.NativeMethodAc
at sun.reflect.DelegatingMeth
at java.lang.reflect.Method.i
at org.hibernate.context.Thre
at $Proxy8.save(Unknown Source)
at roseindia.CreateData.main(
Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into ("DELIVERYTEST7"."STUDENT2
at oracle.jdbc.dbaccess.DBErr
at oracle.jdbc.ttc7.TTIoer.pr
at oracle.jdbc.ttc7.Oall7.rec
at oracle.jdbc.ttc7.TTC7Proto
at oracle.jdbc.ttc7.TTC7Proto
at oracle.jdbc.driver.OracleS
at oracle.jdbc.driver.OracleS
at oracle.jdbc.driver.OracleS
at oracle.jdbc.driver.OracleP
at org.hibernate.id.insert.Ab
... 22 more
I suspect on table creation syntax is auto-increment or sequence etc is missing? please advise
@GeneratedValue menas its automatically genrated the value . no need to set.
that will take care of annotation !!increment
ur pblm is
in ur bean ur define the id value as int
but in table u define as varchar !!
that will take care of annotation !!increment
ur pblm is
in ur bean ur define the id value as int
but in table u define as varchar !!
ASKER
Hi,
I changed the varchar to int in the database still getting same error. Please advise
I changed the varchar to int in the database still getting same error. Please advise
ASKER
Hi,
Above example working fine in mysql when i d column is set as auto increment. But in oracle there is no concept of auto increment. I am not sure how to make it work.
I tried other example without annotation againest same database like
public class Contact {
private String firstName;
private String lastName;
private String email;
private long id;
/**
* @return Email
*/
public String getEmail() {
return email;
}
/**
* @return First Name
*/
public String getFirstName() {
return firstName;
}
/**
* @return Last name
*/
public String getLastName() {
return lastName;
}
/**
* @param string Sets the Email
*/
public void setEmail(String string) {
email = string;
}
/**
* @param string Sets the First Name
*/
public void setFirstName(String string) {
firstName = string;
}
/**
* @param string sets the Last Name
*/
public void setLastName(String string) {
lastName = string;
}
/**
* @return ID Returns ID
*/
public long getId() {
return id;
}
/**
* @param l Sets the ID
*/
public void setId(long l) {
id = l;
}
}
java class looks like
public class FirstExample {
public static void main(String[] args) {
Session session = null;
try{
// This step will read hibernate.cfg.xml and prepare hibernate for use
SessionFactory sessionFactory = new Configuration().configure( ).buildSes sionFactor y();
session =sessionFactory.openSessio n();
object
org.hibernate.Transaction tr = session.beginTransaction() ;
System.out.println("Insert ing Record");
Contact contact = new Contact();
contact.setId(13);
contact.setFirstName("sai1 1");
contact.setLastName("baba1 1");
contact.setEmail("baba11@g mail.com") ;
session.save(contact);
tr.commit();
System.out.println("Done") ;
}catch(Exception e){
System.out.println(e.getMe ssage());
}finally{
session.flush();
session.close();
}
}
}
Please advise on why annotation one does not work on oracle
Above example working fine in mysql when i d column is set as auto increment. But in oracle there is no concept of auto increment. I am not sure how to make it work.
I tried other example without annotation againest same database like
public class Contact {
private String firstName;
private String lastName;
private String email;
private long id;
/**
* @return Email
*/
public String getEmail() {
return email;
}
/**
* @return First Name
*/
public String getFirstName() {
return firstName;
}
/**
* @return Last name
*/
public String getLastName() {
return lastName;
}
/**
* @param string Sets the Email
*/
public void setEmail(String string) {
email = string;
}
/**
* @param string Sets the First Name
*/
public void setFirstName(String string) {
firstName = string;
}
/**
* @param string sets the Last Name
*/
public void setLastName(String string) {
lastName = string;
}
/**
* @return ID Returns ID
*/
public long getId() {
return id;
}
/**
* @param l Sets the ID
*/
public void setId(long l) {
id = l;
}
}
java class looks like
public class FirstExample {
public static void main(String[] args) {
Session session = null;
try{
// This step will read hibernate.cfg.xml and prepare hibernate for use
SessionFactory sessionFactory = new Configuration().configure(
session =sessionFactory.openSessio
object
org.hibernate.Transaction tr = session.beginTransaction()
System.out.println("Insert
Contact contact = new Contact();
contact.setId(13);
contact.setFirstName("sai1
contact.setLastName("baba1
contact.setEmail("baba11@g
session.save(contact);
tr.commit();
System.out.println("Done")
}catch(Exception e){
System.out.println(e.getMe
}finally{
session.flush();
session.close();
}
}
}
Please advise on why annotation one does not work on oracle
ASKER
Hi,
I found the issue
in hibernate.cfg.xml file dialect i have not changed to oracle still pointing to old mysql. After changing everything working fine
I found the issue
in hibernate.cfg.xml file dialect i have not changed to oracle still pointing to old mysql. After changing everything working fine
ASKER
Thank you very much. I appreciate it
ur already insert the value...again ur going ur insert the same means primary key violation error will come so
stu.setId(2);
and run