If PK is null, I guess Cayenne just can't create an object. To deal with such 
data, you may have to fetch DataRows (ObjectSelect.dataRowQuery(..)).

Andrus

> On May 24, 2017, at 4:42 PM, Pascal Robert <[email protected]> wrote:
> 
> 
>> Le 24 mai 2017 à 03:34, Andrus Adamchik <[email protected]> a écrit :
>> 
>> 
>>> On May 23, 2017, at 3:02 PM, Pascal Robert <[email protected]> wrote:
>>> 
>>>> 
>>>> Do all your MySQL entities contain an ObjAttribute for their PK?
>>> 
>>> In fact, the source is FileMaker, and even if the field is listed as a 
>>> number with autofill, that stupid database still allows NULL or non-number 
>>> values...
>> 
>> So maybe null PKs are the culprit? Can you check for null, and assign a PK 
>> yourself?
> 
> This is what I do, but not only the PK is null, but the fetched object is 
> null. 
> 
>    try(ResultIterator<ContactsPrincipaux> contactsPrincipaux = 
> ObjectSelect.query(ContactsPrincipaux.class).iterator(context)) {
>      try(BufferedWriter writer = Files.newBufferedWriter(file.toPath(), 
> charset, StandardOpenOption.CREATE)) {
>        for (ContactsPrincipaux contact: contactsPrincipaux) {
>          if (contact != null && contact.getKpCodeContact() != null) {
>            String s = contact.getKpCodeContact() + ";" + 
> contact.getInfoPrenom() + ";" + contact.getInfoNom() + ";" + 
> contact.getInfoCourriel1() + ";" + contact.getAdressePrincipaleCodepostal() + 
> "\n";
>            writer.write(s, 0, s.length());
>          } else {
>            System.out.println(contact);
>          }
>        }
>      } catch (IOException ex) {
> 
>      }
>    }
> 
> When the FileMaker record does not have a value in kp_code_contact, contact 
> is null.

Reply via email to