我正在尝试从 Oracle 10g 数据库中获取一些数据。因此,我在 application.conf 文件中添加了 db 相关详细信息,当我启动服务器时,在命令提示符中显示连接成功。
我创建了一个实体类,数据库中存在一个类似于类名的表。
Query query = JPA.em().createQuery("select * from Emp");
List<Emp> empList = query.getResultList();
for(Emp employees : empList)
System.out.println(employees.emp_name);
当我尝试运行代码时出现以下异常:
IllegalArgumentException occured : org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [select * from models.Emp]
编辑:
如果我将代码更改为:
List<Emp> empList = Emp.all().fetch();
for(Emp employees : empList)
System.out.println(employees.emp_name);
然后我得到一个例外:
JPAQueryException occured : Error while executing query from models.Emp: ORA-00904: "EMP0_"."ID": invalid identifier
这是我的名为 Emp.java 的模型类:
package models;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import play.data.validation.Required;
import play.db.jpa.Model;
@Entity
public class Emp extends Model {
@Id
@Column(name="Emp_Id")
public Integer id;
public String emp_name;
public Integer dept_id;
public Integer age;
public String sex;
}
这是emp
Oracle DB 中存在的表,其中包含一些数据:
EMP_ID NUMBER. EMP_NAME VARCHAR2(20), DEPT_ID NUMBER, AGE NUMBER, SEX VARCHAR2(6)
因为我不知道这个问题的原因,所以我改写了这个线程的标题。
请让我知道如何解决这个问题。