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

Andrey Novikov edited comment on IGNITE-4548 at 1/16/17 8:09 AM:
-----------------------------------------------------------------

By design BinaryMarshaller not deserialize field "side" when you query 
"sideAsString".  

As temporary workaround OptimizedMarshaller can be used:
{code}
IgniteConfiguration cfg = new IgniteConfiguration();

cfg.setMarshaller(new OptimizedMarshaller());
{code}

[~vsisko] Need support enum mapping in CacheJdbcPojoStore using type in 
database. (org.apache.ignite.cache.store.jdbc.JdbcTypesDefaultTransformer and 
org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore#fillParameter)


was (Author: anovikov):
B design BinaryMarshaller not deserialize field "side" when you query 
"sideAsString".  

As temporary workaround OptimizedMarshaller can be used:
{code}
IgniteConfiguration cfg = new IgniteConfiguration();

cfg.setMarshaller(new OptimizedMarshaller());
{code}

[~vsisko] Need support enum mapping in CacheJdbcPojoStore using type in 
database. (org.apache.ignite.cache.store.jdbc.JdbcTypesDefaultTransformer and 
org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore#fillParameter)

> Invalid mapping of enum to varchar on load/store operation.
> -----------------------------------------------------------
>
>                 Key: IGNITE-4548
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4548
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: 1.9
>            Reporter: Vasiliy Sisko
>            Assignee: Vasiliy Sisko
>             Fix For: 1.9
>
>
> http://stackoverflow.com/questions/41609207/ignite-cachejdbcpojostorefactory-using-enum-fields
> On load of data when type contain enum field that mapped in varchar in 
> database sometimes kind of type is incorrectly detected as binary. 
> Pojo contain string transformer methods.
> {code}
> private OrderSide side; // OrderSide is an enum
> public String getSideAsString() {
>     return this.side.name();
> }
> public void setSideAsString(String s) {
>     this.side = OrderSide.valueOf(s);
> }
> {code}
> and enum column described as:
> {code}
> new JdbcTypeField(Types.VARCHAR, "side", String.class, "sideAsString")
> {code}



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

Reply via email to