[hibernate-issues] [Hibernate-JIRA] Commented: (HSEARCH-678) @NumericField does not work with BigDecimal types (and others?)

Nick Fenwick (JIRA) noreply at atlassian.com
Sun Feb 6 07:00:05 EST 2011


    [ http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=39832#action_39832 ] 

Nick Fenwick commented on HSEARCH-678:
--------------------------------------

Thank you.. that's exactly the kind of guidance I need.  So we can combine @NumericField and BigDecimal, if we provide a specific @FieldBridge.  I know the original exception message hinted at that ("Unable to guess FieldBridge for val"), but as the Hibernate docs said that BigDecimal was supported, I presumed something more serious was going wrong.

I take your point about having to multiply by 100.  For now, all my search logic is encapsulated within a helper class in my app, so it's trivial to hide such details from the rest of my app.  It would still be nice to have some dedicated support, either as direct BigDecimal support, or via an explicit Money Type hinted at earlier.

> @NumericField does not work with BigDecimal types (and others?)
> ---------------------------------------------------------------
>
>                 Key: HSEARCH-678
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-678
>             Project: Hibernate Search
>          Issue Type: Bug
>          Components: mapping, query
>    Affects Versions: 3.3.0.Final
>         Environment: Hibernate 3.6.0, MySQL 5.1.52, Fedora Core 14
>            Reporter: Nick Fenwick
>            Assignee: G Fernandes
>             Fix For: 3.4.0
>
>         Attachments: HSEARCH-678-unittest1.tgz
>
>
> This is my first JIRA so please help me assigns its Component above correctly.
> My first attempt to use BigDecimal ran into trouble trying to use the new @NumericField annotation.  The SessionFactory fails to create an instance of the session.  The code:
> {{
> @Column(name="val")
> @Field(name="val", index=Index.UN_TOKENIZED, store=Store.YES)
> @NumericField
> private BigDecimal val;
> }}
> Results in the exception:
> {{
> Exception in thread "main" java.lang.ExceptionInInitializerError
> [cut]
> Caused by: org.hibernate.HibernateException: could not init listeners
> [cut]
> Caused by: org.hibernate.search.SearchException: Unable to guess FieldBridge for val
> at org.hibernate.search.bridge.BridgeFactory.guessType(BridgeFactory.java:250)
> at org.hibernate.search.engine.AbstractDocumentBuilder.bindFieldAnnotation(AbstractDocumentBuilder.java:690)
> at org.hibernate.search.engine.AbstractDocumentBuilder.checkForField(AbstractDocumentBuilder.java:564)
> [cut]
> }}
> Taking out the @NumericField allows the session to start up successfully.
> I will attempt to make a test case but I'm having local build env issues.  'mvn clean install' of a fresh hibernate search git checkout is taking an incredibly long time (an hour for the first 10 or so .pom files?) so I may be several hours or days over this trivial task.

-- 
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