programing

HQL에서 SQL로의 번역을 이해할 수 없습니다.

megabox 2023. 9. 11. 21:35
반응형

HQL에서 SQL로의 번역을 이해할 수 없습니다.

왜 나의 단순함List<Shopping> products = session.createQuery("FROM Shopping").list(); 에 다음 오류가 발생합니다.

java.sql.SQL 예외:'필드 목록'의 알 수 없는 열 'shopping0_.product'

다음은 지도 파일 Shopping.hbm.xml 입니다.

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name = "com.konrad.market.Shopping" table = "BASKETS">
  <meta attribute = "class-description">
     This class contains the employee detail.
  </meta>
<composite-id>
<key-property name="basketID" column="basketid" type="int"  />
<key-property name="productID" column="product" type="string" />
</composite-id>
<property name="quantity" column="quantity" type="int" />
</class>
</hibernate-mapping>

표는 다음과 같습니다.

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| basketid | int(11)     | NO   | PRI | NULL    |       |
| product  | varchar(30) | NO   | PRI | NULL    |       |
| quantity | int(11)     | NO   |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

basketid와 product 또한 외국키입니다.무슨 생각 있어요?

오류로 보아 해당 표에는 제품 col이 없습니다.productId라고 하는 건가요? 그리고 hbm 파일에 정의된 composite key를 db-on basketid와 product에 가지고 있나요?

basketid와 제품이 외국 키라면 hbm 매핑을 보지 못했기 때문에 Hbm 매핑을 변경해야 합니다.

언급URL : https://stackoverflow.com/questions/48815751/i-cant-understand-hql-to-sql-translation

반응형