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