0

ive been having a problem with connecting to my database and inserting data into it. Ive connected to it without annotations but i need to use annotations.

My hibernate.cfg.xml file is the following

<hibernate-configuration>
    <session-factory>

        <property name = "hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <property name = "hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name = "hibernate.connection.url">jdbc:oracle:thin:@fullproject.cyephgag55my.us-east-1.rds.amazonaws.com:1521:ORCL</property>
        <property name = "hibernate.connection.username">sa</property>
        <property name = "hibernate.connection.password">abcd1234</property>
        <!-- Hibernate Options 
        <property name = "show_sql">true</property>
        <property name="connection.pool_size">1</property>
        <property name="hbm2ddl.auto">update</property>-->
        <mapping resource="Db.hbm.xml"/>
        <mapping class="com.exam.PersonalInfo"/>
    </session-factory>
</hibernate-configuration>

My Pojo is

import javax.persistence.*;
@Entity
@Table(name = "PersonalInfo")
public class PersonalInfo {
    @Id @GeneratedValue
    @Column
    private String fname;
    @Column
    private String lname;
    @Column
    private int ssn;
    @Column
    private String dob;
    @Column
    private String address;
    @Column
    private String city;
    @Column
    private String state;
    @Column
    private String email;
    @Column
    private String password;
    @Column
    private String phoneNum;

    public String getFname() {
        return fname;
    }
    public void setFname(String fname) {
        this.fname = fname;
    }
    public String getLname() {
        return lname;
    }
    public void setLname(String lname) {
        this.lname = lname;
    }
    public int getSsn() {
        return ssn;
    }
    public void setSsn(int ssn) {
        this.ssn = ssn;
    }
    public String getDob() {
        return dob;
    }
    public void setDob(String dob) {
        this.dob = dob;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getPhoneNum() {
        return phoneNum;
    }
    public void setPhoneNum(String phoneNum) {
        this.phoneNum = phoneNum;
    }
}

And the java file that im using to do all the actions is

public class ManagePerson {

    public static void main(String[] args) {

        //AnnotationConfiguration config = new AnnotationConfiguration();
        //config.configure("/hibernate.cfg.xml");
        System.out.println("Hola");
        SessionFactory factory = new AnnotationConfiguration().configure("/hibernate.cfg.xml").buildSessionFactory();
        Session session = (Session) factory.getCurrentSession().beginTransaction();
        //Transaction tran = session.beginTransaction();
        try{
            PersonalInfo pi = new PersonalInfo();
            pi.setFname("Steve");
            pi.setLname("Rogers");
            pi.setSsn(368572734);
            pi.setDob("10/12/1937");
            pi.setAddress("15 Captain America Rd.");
            pi.setCity("Manhattan");
            pi.setState("New York");
            pi.setEmail("[email protected]");
            pi.setPassword("IamCaptAmerica1!");
            pi.setPhoneNum("7812649845");
            session.save(pi);
            //tran.commit();
            System.out.println("Person Added");
            session.flush();
        }catch(HibernateException e){
            e.printStackTrace();
        }
    }
}

The error that is coming up is

Exception in thread "main" java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
    at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:1080)
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:765)
    at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies(AnnotationMetadataSourceProcessorImpl.java:245)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies(MetadataBuildingProcess.java:222)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:265)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:692)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
    at ManagePerson.main(ManagePerson.java:19)

Please tell me what I am doing wrong or what I am missing. The lines that are commented out will not work as well. Please help...Thank you.

5
  • @CrisEspi ManagePerson.main(ManagePerson.java:19) which line of code was mentioned here? Commented Jan 28, 2016 at 17:00
  • SessionFactory factory = new AnnotationConfiguration().configure("/hibernate.cfg.xml").buildSessionFactory(); Commented Jan 28, 2016 at 17:01
  • Looks like you have some version mismatch in your dependencies. Commented Jan 28, 2016 at 17:01
  • Yeah...that makes sense Thank you Commented Jan 28, 2016 at 17:05
  • You have an old version of the JPA jar file in your classpath. Commented Jan 28, 2016 at 17:05

1 Answer 1

2

Please add a member attribute 'id' in PersonalInfo class and map this id attribute to unique column of db table-PersonalInfo

Example

 @Id @GeneratedValue
 @Column(name = "id")
 private int id;
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.