[ 
https://issues.apache.org/jira/browse/JDO-751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15143012#comment-15143012
 ] 

Craig L Russell commented on JDO-751:
-------------------------------------

I'd like to propose that Optional be strictly a persistence-capable class 
modeling artifact. 

For mapping to the datastore, treat Optional<T> exactly as T, except (as Andy 
suggests) require that the datastore accept null as a value. When instantiating 
an instance from the datastore, the persistence implementation would get the 
value v from the datastore and assign the field f = Optional<T>.ofNullable(v). 
When storing the field in the datastore, the persistence implementation would 
store the result of v = f.isPresent()?f.get():null.

With this proposal, there is no change to JDOQL (Andy's "alternative"). The 
query language already protects against accidentally dereferencing null values 
and provides for comparing values for null.

This proposal allows users to model persistent classes with possible null 
valued fields using the shorthand Optional features. It seems to me that 
Optional really is just a slick way to avoid using ==null and instead use 
ifPresent and other object-oriented methods. 

> Support for Java8 Optional
> --------------------------
>
>                 Key: JDO-751
>                 URL: https://issues.apache.org/jira/browse/JDO-751
>             Project: JDO
>          Issue Type: New Feature
>          Components: specification, tck
>            Reporter: Andy Jefferson
>
> java.util.Optional provides a feature that is available in other languages. 
> Since JDO 3.2 will be for Java8+ then it makes sense to add support for this 
> as a "supported persistable type"



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to