[ 
https://issues.apache.org/jira/browse/OPENJPA-393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pinaki Poddar resolved OPENJPA-393.
-----------------------------------

    Resolution: Fixed

> @Column(nullable=false) setting not taken into account for String field values
> ------------------------------------------------------------------------------
>
>                 Key: OPENJPA-393
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-393
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 1.0.0
>         Environment: Linux 2.6, Java JDK 1.5.0.11, Spring 2.0.7
>            Reporter: Gergely Kis
>            Assignee: Pinaki Poddar
>
> The @Column(nullable=false) annotation is taken into account when creating 
> the database schema, however it is not taken into account when inserting 
> string values.
> See the following test case:
> @Entity
> public class A {
>    @Id
>     private long id;
>     @Column(nullable=false)
>     private String name;
>     public A() {}
>     public A(String name) { this.name = name; }
> [...accessor methods omitted...]
> }
> When trying to persist the instance A(null), the record will be created 
> successfully with an empty string as the value of the name column, instead of 
> returning an error.
> According to my analysis the problem is the following. When the @Column 
> annotations are parsed (see AnnotationPersistenceMappingParser) the 
> FieldMapping.setNullValue() method is not called. As a result, when fetching 
> the String field value for storing it in the database the default value for 
> strings is returned (which is an empty string), instead of raising an 
> exception. See StringFieldStrategy.toDataStoreValue() for reference.
> The proposed solution would be to call this setNullValue method with the 
> appropriate parameter while @Column annotations are parsed, but I don't know 
> the OpenJPA source well enough to determine whether this is the proper fix or 
> if there are other parameters that should be set in the FieldMapping. 
> However, my local tests fixed the reported issue.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to