Tôi đã có một thực thể Hibernate đơn giản mà tôi sử dụng annotion @Formula:Native truy vấn SQL cho một thực thể Hibernate sử dụng kết quả @Formula trong NullPointerException
@Id
private Long id;
private String name;
@Formula("(select count(f.*) from foo f where f.id = id)")
private long bar;
Khi tôi cố gắng tải một thực thể với một người gốc SQL Query:
EM.createNativeQuery("SELECT f.*, count(something) as bar FROM foo f WHERE f.name = '...'", Entity.class)
tôi nhận được một NullPointerException:
java.lang.NullPointerException
at org.hibernate.loader.DefaultEntityAliases.intern(DefaultEntityAliases.java:193)
at org.hibernate.loader.DefaultEntityAliases.getSuffixedPropertyAliases(DefaultEntityAliases.java:151)
at org.hibernate.loader.DefaultEntityAliases.determinePropertyAliases(DefaultEntityAliases.java:93)
at org.hibernate.loader.DefaultEntityAliases.<init>(DefaultEntityAliases.java:65)
at org.hibernate.loader.ColumnEntityAliases.<init>(ColumnEntityAliases.java:45)
at org.hibernate.loader.custom.sql.SQLQueryReturnProcessor.generateCustomReturns(SQLQueryReturnProcessor.java:197)
at org.hibernate.loader.custom.sql.SQLCustomQuery.<init>(SQLCustomQuery.java:152)
at org.hibernate.engine.query.NativeSQLQueryPlan.<init>(NativeSQLQueryPlan.java:67)
at org.hibernate.engine.query.QueryPlanCache.getNativeSQLQueryPlan(QueryPlanCache.java:140)
at org.hibernate.impl.AbstractSessionImpl.getNativeSQLQueryPlan(AbstractSessionImpl.java:160)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:179)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236)
Khi tôi loại bỏ các attribu @Formula te tất cả các công trình tốt.
Tôi tìm thấy báo cáo lỗi này: BugReport. Nhưng đối với tôi nó không rõ ràng làm thế nào để giải quyết vấn đề của tôi.
lỗi này đã bị đóng như cố định ngay bây giờ. Tôi vẫn nhận được một NPE khó khăn ... –