jpa问题
1、entityManager:列名无效
- 问题场景:entityManager查询时,写原始sql报错:Caused by: java.sql.SQLException: 列名无效
- 原始代码:ORACLE中字段为NEWS_LEVEL2_NAME,实体类属性名定义为newsLevel2Name
- 解决方式:debug后发现,newsLevel2Name被解析为NEWS_LEVEL2NAME,将sql字段起个 NEWS_LEVEL2NAME别名
- 源码位置:hibernate-core-5.4.22.Final.jar
package org.hibernate.loader;
public abstract class Loader {
......
private void loadFromResultSet(ResultSet rs, int i, Object object, String instanceEntityName, EntityKey key, String rowIdAlias, LockMode lockMode, Loadable rootPersister, SharedSessionContractImplementor session) throws SQLException, HibernateException {
......
String[][] cols = persister == rootPersister ? this.getEntityAliases()[i].getSuffixedPropertyAliases() : this.getEntityAliases()[i].getSuffixedPropertyAliases(persister);
......
}
......
}