[hibernate-issues] [Hibernate-JIRA] Commented: (HSEARCH-115) Add a default value for indexing null value

Hardy Ferentschik (JIRA) noreply at atlassian.com
Sun Nov 11 13:10:29 EST 2007


    [ http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-115?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_28776 ] 

Hardy Ferentschik commented on HSEARCH-115:
-------------------------------------------

As far as I can see there should be no problem to add a 'default' parameter to the Field annotation. We could then pick up this annotation in BridgeFactory.guessType( ) and pass it to the build in bridge (provided no custom bridge is provided). Since so many buildin bridges extend the NumberBridge you pretty much only have to change this bridge together with the StringBridge.

So technically it should be straight forward, but before I would go ahead I have a few questions.

The buildin bridges are all implementing TwoWayStringBridge. How would you resolve ambiguities? If I for example use the string 'null' as default for a null object (as suggested in the example), but  one of my objects also contains 'null' as a value, how do I map the string 'null' for stringToObject()? I guess since the default anntotation would be sepcified you would map the string 'null' always to null. This would mean that it is up to the user to ensure that her data does not contain any ambiguities. 

Given the potential problems wouldn't it be better to not add this feature to the build in bridges? As said user can always use/implement a custom bridge. Or we introduce additional custom bridges which don't implement TwoWayStringBridge?




> Add a default value for indexing null value
> -------------------------------------------
>
>                 Key: HSEARCH-115
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-115
>             Project: Hibernate Search
>          Issue Type: Improvement
>          Components: mapping
>            Reporter: Julien Brulin
>            Assignee: Hardy Ferentschik
>             Fix For: 3.0.1, 3.1.0
>
>
> Hi,
> Null elements are not indexed by lucene then it's not easy to use a nullable property in lucene query.
> I have a TagTranslation entity in my model with a nullable property language. In this case null is used as default language for tag translation.
> Each translation may have many variations like synonyms. 
> Because I can specified a default value for null value in the @Field annotation like this @Field(index=Index.UN_TOKENIZED, store=Store.NO, default='null'), i can't search a cat tag with a default translation like this : +value:cat* +lang:null 
> <pre></code>
> @Entity()
> @Table(name="indexing_tag_trans")
> @org.hibernate.annotations.Cache(usage=org.hibernate.annotations.CacheConcurrencyStrategy.READ_WRITE)
> @Indexed
> public class TagTranslation implements java.io.Serializable {
>     
>   
> 	private static final long serialVersionUID = -1065316566731456110L;
> 	
>     @Id
>     @GeneratedValue(strategy=GenerationType.IDENTITY)
>     @DocumentId
>     private Integer id;
>     
> 	@Field(index=Index.UN_TOKENIZED, store=Store.NO)
>     private String language;
>     
>     @Field(index=Index.TOKENIZED, store=Store.YES)
>     private String value;
>     
>     @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
>     @org.hibernate.annotations.Fetch(org.hibernate.annotations.FetchMode.SUBSELECT)
>     @JoinColumn(name="translation_id")
>     @IndexedEmbedded
>     private List<TagVariation> variations = new LinkedList<TagVariation>();
>     
>     public TagTranslation() { }
> ...
> </code>
> </pre>
> What do you think about that ?
> Ps: sorry for english write, i am a french guy.

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