[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2225) NPE when eager fetching joined component with native SQL query

Strong Liu (JIRA) noreply at atlassian.com
Wed May 25 04:19:28 EDT 2011


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=42398#action_42398 ] 

Strong Liu commented on HHH-2225:
---------------------------------

meanwhile there are some workarounds you may want to give them a try:

{code}
@Entity
@Table(name = "ALL_TABLES")
 public class AllTables {
	@Id
	@Column(name = "TABLE_NAME", nullable = false)
	private String tableName;
	@Formula(value = "(SYSDATE())")
	private String daysOld;
	//getters and setters
 }
{code}

{code}
String sql = "select table_name , sysdate()  from all_tables   where table_name = 'AUDIT_ACTIONS' ";
SQLQuery q = s.createSQLQuery( sql ).addEntity( "t",AllTables.class );
{code}

workaround 1:
{code}
String sql = "select table_name as t_name, sysdate() as t_time from all_tables   where table_name = 'AUDIT_ACTIONS' ";			
@SqlResultSetMapping(name = "all",
		entities = @EntityResult(entityClass = AllTables.class,
				fields = {
						@FieldResult(name = "tableName", column = "t_name"),
						@FieldResult(name = "daysOld", column = "t_time")
				}))
{code}				
workaround 2:	
{code}
String sql = "select table_name as t_name, sysdate() as t_time from all_tables   where table_name = 'AUDIT_ACTIONS' ";			
q.addRoot( "alias23", AllTables.class )
	.addProperty( "tableName", "t_name" )
	.addProperty( "daysOld", "t_time" );
{code}	
workaround 3:
{code}
String sql = "select t.table_name as {t.tableName}, sysdate() as {t.daysOld} from all_tables t  where t.table_name = 'AUDIT_ACTIONS' ";
{code}

> NPE when eager fetching joined component with native SQL query
> --------------------------------------------------------------
>
>                 Key: HHH-2225
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2225
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: query-sql
>    Affects Versions: 3.2.0.ga
>            Reporter: Christian Bauer
>            Assignee: Strong Liu
>
> Item -> many-to-one -> User -> joined component -> billingAddress
> This:
>  result = session.createSQLQuery("select {i.*}, {u.*}, {ba.*} from ITEM i" +
>                                         " join USERS u on i.SELLER_ID = u.USER_ID" +
>                                         " left join BILLING_ADDRESS ba on u.USER_ID = ba.USER_ID" +
>                                         " where u.USERNAME = :uname")
>                          .addEntity("i", Item.class)
>                          .addJoin("u", "i.seller")
>                          .addJoin("ba", "u.billingAddress")
> fails with:
> java.lang.NullPointerException
> 	at org.hibernate.loader.DefaultEntityAliases.<init>(DefaultEntityAliases.java:37)
> 	at org.hibernate.loader.custom.sql.SQLQueryReturnProcessor.generateCustomReturns(SQLQueryReturnProcessor.java:283)
> 	at org.hibernate.loader.custom.sql.SQLCustomQuery.<init>(SQLCustomQuery.java:129)
> 	at org.hibernate.engine.query.NativeSQLQueryPlan.<init>(NativeSQLQueryPlan.java:43)
> 	at org.hibernate.engine.query.QueryPlanCache.getNativeSQLQueryPlan(QueryPlanCache.java:114)
> 	at org.hibernate.impl.AbstractSessionImpl.getNativeSQLQueryPlan(AbstractSessionImpl.java:137)
> 	at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
> 	at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:150)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list