Oracle 10g DB からデータを取得しようとしています。そのため、application.confファイルにdb関連の詳細を追加しました。サーバーを起動すると、コマンドプロンプトで接続が成功したことが示されます。
Entity クラスを作成しました。クラス名に似たテーブルがデータベースに存在します。
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)
この問題の理由を認識していなかったので、このスレッドの見出しを言い換えました。
これを解決する方法を教えてください。