JPQL/Hibernate
图层DA
。
我有一张表如下:
CREATE TABLE Log_Tbl
(
id number,
name varchar2(30),
);
我上面有一个实体如下:
@Entity
@Table(name = "Log_Tbl")
public class ELog
{
@Column(name = "id")
private long entity_id;
@Column(name = "name")
private String entity_name;
}
并按Log
将Log_Tbl
实体映射到jpa
表格;
我有以下两个JPQL
个查询:
select ELog from ELog where entity_name = 'Job'
select ELog from ELog where name = 'Job'
两个查询都返回了正确的结果。我的问题是:
为什么第二个查询返回正确的结果,尽管我使用的是列名而不是entity_name
属性?
答案 0 :(得分:2)
引用post类似(如果不是重复)的问题
当您在HQL查询的WHERE子句中使用Hibernate不知道的内容时(例如,未在SQL方言中注册的函数),Hibernate会巧妙地将其直接传递给数据库。 / p>
因此,它确实有效,但它是供应商特定的,如果您切换JPA实现可能不会起作用。