Could you share the code for your types SourceA and SourceB. It seems as if
Flink does not recognize them to be POJOs because he assigned them the
GenericType type. Either there is something wrong with the type extractor
or your implementation does not fulfil the requirements for POJOs, as
indicated by Chiwan.

Cheers,
Till
​

On Tue, Feb 9, 2016 at 11:53 AM, Dominique Rondé <
dominique.ro...@codecentric.de> wrote:

> The fields in SourceA and SourceB are private but have public getters and
> setters. The classes provide an empty and public constructor.
> Am 09.02.2016 11:47 schrieb "Chiwan Park" <chiwanp...@apache.org>:
>
>> Oh, the fields in SourceA have public getters. Does the fields in SourceA
>> have public setter? SourceA needs public setter for private fields.
>>
>> Regards,
>> Chiwan Park
>>
>> > On Feb 9, 2016, at 7:45 PM, Chiwan Park <chiwanp...@apache.org> wrote:
>> >
>> > Hi Dominique,
>> >
>> > It seems that `SourceA` is not dealt as POJO. Are all fields in SourceA
>> public? There are some requirements for POJO classes [1].
>> >
>> > [1]:
>> https://ci.apache.org/projects/flink/flink-docs-release-0.10/apis/programming_guide.html#pojos
>> >
>> > Regards,
>> > Chiwan Park
>> >
>> >> On Feb 9, 2016, at 7:42 PM, Dominique Rondé <
>> dominique.ro...@codecentric.de> wrote:
>> >>
>> >> Hi  folks,
>> >>
>> >> i try to join two datasets containing some PoJos. Each PoJo inherit a
>> field "sessionId" from the parent class. The field is private but has a
>> public getter.
>> >>
>> >> The join is like this:
>> >> DataSet<Tuple2<SourceA,SourceB>> joinedDataSet =
>> sourceA.join(SourceB).where("sessionId").equalTo("sessionId");
>> >>
>> >> But the result is the following execption:
>> >>
>> >> Exception in thread "main"
>> org.apache.flink.api.common.InvalidProgramException: This type
>> (GenericType<x.y.z.service.eventstore.dto.SourceA>) cannot be used as key.
>> >>    at
>> org.apache.flink.api.java.operators.Keys$ExpressionKeys.<init>(Keys.java:287)
>> >>    at
>> org.apache.flink.api.java.operators.JoinOperator$JoinOperatorSets.where(JoinOperator.java:890)
>> >>    at
>> x.y.z.eventstore.processing.pmc.PmcProcessor.main(PmcProcessor.java:55)
>> >>
>> >> I spend some time with google around but I don't get an idea what is
>> wrong. I hope some of you can give me a hint...
>> >>
>> >> Greets
>> >> Dominique
>> >>
>> >
>>
>>

Reply via email to