Hibernate 生成 SQL 在 MySQL 客戶端執行報錯:
SELECT sapcle FROM SellEnterpriseBaseInfor sebie,
SellEnterpriseBaseInforVer sebive,
SellApplyPermitChangeList sapcle
WHERE ...
-- 錯誤:Unknown column 'sapcle' in 'field list'
Java/Hibernate 中 sapcle 代表實體對象,可直接選擇。但 MySQL 原生 SQL 中,sapcle 是表別名,必須顯式指定列,如 sapcle.* 或具體列名。
SELECT sapcle.* FROM SellEnterpriseBaseInfor sebie,
SellEnterpriseBaseInforVer sebive,
SellApplyPermitChangeList sapcle
WHERE 1=1
AND sebie.iVerID = sebive.id
AND sapcle.iEnterpriseBaseInforID = sebive.id
AND sapcle.iState = 1
AND sapcle.iEnterpriseID = 11027516
AND sapcle.id = 84;
SELECT sapcle.id, sapcle.name, ...(避免 SELECT *)| 環境 | 選擇實體別名 | 選擇表別名 |
|---|---|---|
| Hibernate/JPA | ✅ 支援 | ❌ 不適用 |
| 原生 SQL | ❌ 報錯 | ✅ 需加 .* 或具體列 |