1

I am new in Spring and Hibernate. I am trying to insert and retrieve all data from database. I have inserted data in mySql db and now i am trying to retrieve all data from database but i am getting some exception. What i can do to fix the problem.

Jul 04, 2012 10:46:58 AM org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: 1064, SQLState: 42000
Jul 04, 2012 10:46:58 AM org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: You have an error in your SQL syntax; check the manual that corresponds to     your MySQL server version for the right syntax to use near ') as emp1_0_, employee0_.address as address0_, employee0_.emp_email as emp3_0_, ' at line 1
Hibernate: select employee0_.emp_id) as emp1_0_, employee0_.address as address0_, employee0_.emp_email as emp3_0_, employee0_.manager_id as manager4_0_, employee0_.emp_name as emp5_0_ from employee employee0_
org.hibernate.exception.SQLGrammarException: could not execute query

Hibernate code is

public void getAll() {

    Session session = HibernateUtil.getSessionFactory().openSession();
    Transaction transaction = null;
    try {
        transaction = (Transaction) session.beginTransaction();
        List employees = session.createQuery("from Employee").list();
        for (Iterator iterator = employees.iterator(); iterator.hasNext();) {
            Employee employee = (Employee) iterator.next();
            System.out.println(employee.getName());
        }
        transaction.commit();
    } catch (HibernateException e) {
        transaction.rollback();
    } finally {
        session.close();
    }
}

Employee.java

@Entity
@Table(name="employee")
public class Employee {

private int id;
private String name;
private String email;
private String address;
private int managerId;


@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="emp_id)")
public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

@Column(name="emp_name")
public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

@Column(name="emp_email")
public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

@Column(name="address")
public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}

@Column(name="manager_id")
public int getManagerId() {
    return managerId;
}

public void setManagerId(int managerId) {
    this.managerId = managerId;
}
}
3
  • can you please paste your Employee.java class as well Commented Jul 4, 2012 at 5:13
  • Employee.java is added bellow. Commented Jul 4, 2012 at 5:17
  • You should vote up if your problem is resolved Commented Jul 4, 2012 at 5:26

3 Answers 3

6

this

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="emp_id)")
public int getId() {
    return id;
}

should be - 

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="emp_id")
public int getId() {
    return id;
}

Remove ) from the end of name="emp_id)"

Sign up to request clarification or add additional context in comments.

Comments

3

There is typo error in the Id field emp_id, having extra ')'

@Column(name="emp_id)")

Remove the curly bracket it will work.

Comments

2

column name for id you specified is containing ) remove it e.g.

replace @Column(name="emp_id)") with @Column(name="emp_id")

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="emp_id")

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.