[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ojb-user
Subject:    ReportQuery and NVARCHAR/NTEXT?
From:       "Ryan Vanderwerf" <rvanderwerf () metrowerks ! com>
Date:       2004-10-28 17:03:57
Message-ID: 20041028170402.96EFB33816F () mail ! mdp ! metrowerks ! com
[Download RAW message or body]


Hi, I'm trying to use a report query on tables with NTEXT and NVARCHAR
(MSSQL Server 2k), and I get a NullPointerException (I've verified the
db-value I am selecting wasn't null):

 

 

java.lang.NullPointerException
        at
org.apache.ojb.broker.util.JdbcTypesHelper.getObjectFromColumn(Unknown
Source)
        at
org.apache.ojb.broker.util.JdbcTypesHelper.getObjectFromColumn(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.SqlBasedReportQueryRsIterator.getObjectFro
mResultSet(Unknown Source)
        at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
        at _test__jsp._jspService(/test.jsp:30)
        at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
        at com.caucho.jsp.Page.subservice(Page.java:506)
        at
com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
        at
com.metrowerks.mdp2.logging.PageViewFilter.doFilter(PageViewFilter.java:129)
        at
com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
        at com.caucho.server.http.Invocation.service(Invocation.java:315)
        at
com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
        at
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
        at
com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)
        at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
        at java.lang.Thread.run(Thread.java:534)

 

 

If I tried to uncomment the line 'QueryFactory.newReportQuery instead of the
new QueryBySQL I get the following error:

 

java.lang.NullPointerException
        at
org.apache.ojb.broker.accesslayer.ReportQueryRsIterator.<init>(Unknown
Source)
        at
org.apache.ojb.broker.core.ReportRsIteratorFactoryImpl.createRsIterator(Unkn
own Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unkn
own Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getReportQueryIteratorFromQ
uery(Unknown Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getReportQueryIteratorByQue
ry(Unknown Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getReportQueryIterato
rByQuery(Unknown Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getReportQueryIterato
rByQuery(Unknown Source)
        at _test__jsp._jspService(/test.jsp:27)
        at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
        at com.caucho.jsp.Page.subservice(Page.java:506)
        at
com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
        at
com.metrowerks.mdp2.logging.PageViewFilter.doFilter(PageViewFilter.java:129)
        at
com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
        at com.caucho.server.http.Invocation.service(Invocation.java:315)
        at
com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
        at
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
        at
com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)
        at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
        at java.lang.Thread.run(Thread.java:534)

 

 

I'm using the following code:

 

 

  System.out.println("\n\n\n\n\n\n");

  PersistenceBroker br = BaseManager.getBroker();

 

  //Works because of data type 'varchar'

  //String stSql = "SELECT property FROM dtproperties";

 

  //Doesn't works because of data type 'nvarchar'

  String stSql = "SELECT uvalue FROM dtproperties where id=3";

  //Query query = QueryFactory.newReportQuery(Companies.class, new
Criteria());

  Query query = new QueryBySQL(Companies.class, stSql);

 

  Iterator resultIter = br.getReportQueryIteratorByQuery(query);

  System.out.println("has next :"+resultIter.hasNext());

 

  Object o = resultIter.next();

  System.out.println("next :"+((Object[])o)[0]);

 

 

  ArrayList items = new ArrayList();

 

  if (br != null) {

    BaseManager.closeBroker(br);

  }

  System.out.println("\n\n\n\n\n\n");

 

 

 

 

I noticed in the JdbcTypesHelper it doesn't have entries for these types. Is
there a way I can add them? Or maybe a reason why they aren't there? I am
running MSSQL Server. It would appear I could just add another inner class
for that database that extends the BaseType class - but shouldn't there be
more of a plug-in for this instead of changing OJB itself. Maybe I'm just
way off here?

 

 

Ryan



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic