私はHibernateとSQLを初めて使用するので、何か間違ったことをしたのに、2日目を費やした後でも表示されない可能性があります。
私のPostgreSQLDBには、2つのテーブルがあります。
PieChartResult
+---------+---------+--------------+-------+----------+----------+----------------+
| id | answer | approvalrate | input | worktime | workerid | piecharthit_id |
+---------+---------+--------------+-------+----------+----------+----------------+
PieChartHit
+---------+-----------+
| id | truevalue |
+---------+-----------+
次に、SQLステートメントに続いてpgAdminを記述します。これは、完全に正常に機能します。
SELECT DISTINCT input, answer FROM piecharthit INNER JOIN piechartresult ON piecharthit.id=piechartresult_piecharthit_id;
各入力について収集されたすべての回答を確認できる結果テーブルが表示されます。
同じステートメントをJavaで書き込もうとしているとき
Query q = em.createQuery(SELECT DISTINCT a FROM PieChartHit a INNER JOIN a.PiechartResult b WHERE a.id=b.piecharthit_id")
例外が発生します:
Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: PieChartResult of: PieChartHit [SELECT DISTINCT a FROM PieChartHit a INNER JOIN a.PieChartResult b WHERE a.id=b.piecharthit_id]
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1364)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1300)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:294)
at Driver.main(Driver.java:37)
Caused by: org.hibernate.QueryException: could not resolve property: PieChartResult of: PieChartHit [SELECT DISTINCT a FROM PieChartHit a INNER JOIN a.PieChartResult b WHERE a.id=b.piecharthit_id]
両方のクラスは次のようになります。
@Entity
@Table(name="PieChartResult")
public class PieChartResult {
@Id
@GeneratedValue
private Long id;
private String workerID;
private String approvalRate;
private String input;
private double answer;
@ManyToOne
private PieChartHit piecharthit;
と
@Entity
@Table(name="PieChartHIT")
public class PieChartHit {
@Id
@GeneratedValue
private Long id;
private double trueValue;
誰かがこの失われた魂を導いてくれませんか?:(