Hi there!
I cannot read timestamp data from QueryResponse (want to cast result to a
POJO). If Im using SolrDocumentList there are no errors.

db-data-config.xml:
    
    <entity name="discussion" dataSource="mssqlDatasource" pk="id"
                        transformer="TemplateTransformer, DateFormatTransformer"
                        query="SELECT d.id, d.title, d.created,
                               u.first_name, u.last_name,
                               db.type AS boardType, db.country
                               FROM discussion d
                               INNER JOIN wtb_user u ON d.author = u.id
                               INNER JOIN discussion_category dc ON d.category 
= dc.id
                   INNER JOIN discussion_board db ON dc.board = db.id">         
          
                        
                        
                        <field column="first_name" name="firstName" />
                        <field column="last_name" name="lastName" />
                        <field column="tableType" template="DISCUSSION" />
                        
                        <entity name="discussion_post" 
dataSource="mssqlDatasource"
                                transformer="ClobTransformer"
                                query="SELECT dp.message
                                           FROM discussion_post dp
                       WHERE dp.discussion = '${discussion.id}'">
                <field column="message" name="discussionPostMessage"
clob="true" />
                        </entity>
                </entity>


schema.xml:
     
    <field name="created" type="date" indexed="false" stored="true"/> 

    

the field 'created' is a timestamp in my database and after inserting index
data a result looks like (called with browser admin console) :

      <result name="response" numFound="246" start="0">
      <doc>
       <str name="boardType">1</str>
       <date name="created">2012-10-05T07:29:23.387Z</date>
       <arr name="discussionPostMessage">
        <str>message test</str>
        <str>second</str>
        <str>third</str>
       </arr>
       <str name="firstName">Ashley</str>
       <str name="id">10</str>
       <str name="lastName">Morgan</str>
       <str name="tableType">DISCUSSION</str>
       <str name="title">headline test</str>
      </doc>
      ...

Now I tried to to query a 'all result'

    public void search(String searchString) {
                SolrQuery query = new SolrQuery();
                QueryResponse rsp;
                try {
                        query = new SolrQuery();
                        query.setQuery(DEFAULT_QUERY);
                        query.setRows(246);
                        
                        rsp = getServer().query(query);

                        SolrDocumentList solrDocumentList = rsp.getResults(); //
IllegalArgumentException
                        List<SearchRequestResponseObject> beans =
rsp.getBeans(SearchRequestResponseObject.class); //works
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        }

SearchRequestResponseObject.class:

    public class SearchRequestResponseObject {
        @Field
        private String id;

        @Field
        private String title;

        @Field
        @Temporal(TemporalType.TIMESTAMP)
        //@DateTimeFormat(style = "yyyyMMdd HH:mm:ss z")
        //@DateTimeFormat(style = "yyyyMMdd")
        private Timestamp created;
        ...
    }

Exception:

    Caused by: java.lang.IllegalArgumentException: Can not set
java.sql.Timestamp field
com.ebcont.redbull.wtb.solr.SearchRequestResponseObject.created to
java.util.Date
        at
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
        at
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150)
        at
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
        at java.lang.reflect.Field.set(Field.java:657)
        at
org.apache.solr.client.solrj.beans.DocumentObjectBinder$DocField.set(DocumentObjectBinder.java:374)
        ... 45 more


What do Im wrong? :(



--
View this message in context: 
http://lucene.472066.n3.nabble.com/Solr-Can-not-set-java-sql-Timestamp-field-created-to-java-util-Date-tp4013717.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to