[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-4947) Silent exclusion of null-valued map entry

Andreas Deppisch (JIRA) noreply at atlassian.com
Fri Jun 18 01:10:20 EDT 2010


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

Andreas Deppisch commented on HHH-4947:
---------------------------------------

I know this kind of issue was discussed a lot. But from my point of view I agree that this is a bug. I read the arguments from Gavin from issue HHH-772, but I disagree with him. My use case is a map with key value pairs whereas the total map is an identifier. For that use case a map with a key and value {{null}} is different to a map with a removed key. A comparison from a map written to the database and reading the same map fails always.

Not expecting this issue, now it is a big effort to change my datamodel and rework the mapping in order to get what I need because the software is already running on several customer projects.

Please Gavin rethink your arguments. Maybe there is a compromise to set the behaviour with annotations as already suggested.

> Silent exclusion of null-valued map entry
> -----------------------------------------
>
>                 Key: HHH-4947
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4947
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.3.2, 3.5.0-CR-1
>            Reporter: Tsering Shrestha
>
> <class name="Product">
>   <id name="id">
>     <generator class="native"/>
>   </id>
>   <map name="sellingPrice">
>   <key column="PRODUCT" not-null="true" foreign-key="FK_SP_PRODUCT"/>
>   <map-key type="string" column="model" not-null="true"/>
>   <element type="double" column="price" not-null="false"/>
>   </map>
> </class>
> Product product = new Product();
> Product.getSellingPrice().put("XL",null);
> Product.getSellingPrice().put("L", 34.90);
> session.save(product)
> Gives the following SQL:
> insert into PRODUCT (id) values (null)
> call identity()
> insert into SELLINGPRICE (PRODUCT, MODEL, PRICE) values (?, ?, ?)
> And the SELLINGPRICE table indeed only has one row. Why does Hibernately *silently* remove my null-valued entry? I would either want it to be able to save the entry or raise an exception that it cannot.
> Report this post

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