[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] java.lang.IllegalArgumentException

Hi, Chris
You helped me a lot, thanks!
I followed your tip and it works now

Regards,
Dmitry


Christopher Delahunt wrote:
> 
> Hi Dmitry,
> 
> You must have a field in the OebsView table, say OEBSID.  You can either 
> map this field using
> a basic mapping, in which case the attribute type should be string, or 
> as a relationship (OneToOne), in which case
> the attribute should be the referenced entity type.  A relationship 
> mapping cannot go on a string type or you will
> get this exception. 
> 
> I don't know how you have created the class, but you have to change the 
> mapping or the attribute type for it to work
> as it is. 
> 
> Best Regards,
> Chris
> 
> dmitryerkin wrote:
>> Hi, Chris!
>> Thank you for your answer
>>
>> You are perfectly right. The ejb3.OebsView class has the oebsId attribute
>> which is mapped as one to one to the ejb3.Oebskeyfields class. The type
>> of
>> oebsId is String.
>> You mean I have to change the type of oebsId from String to
>> ejb3.OebsView?
>> But these classes are generated by workbench so I can not understand your
>> tip.
>> Sorry.
>>
>> Regards,
>> Dmitry
>>
>>
>>
>> Christopher Delahunt wrote:
>>   
>>> Hello Dmitry,
>>>
>>> The problem isn't in the ejb3.Oebskeyfields, but in a oebsId mapping in 
>>> the ejb3.OebsView class.  I believe you have a OneToOne mapping to this
>>> attribute, and EclipseLink then has to try and put a Oebskeyfields 
>>> object into a String - hence the exception.
>>>
>>> Please check your mappings and attribute types in the Oebskeyfields 
>>> entity and post them if this doesn't help.
>>>
>>> Best Regards,
>>> Chris
>>>
>>> dmitryerkin wrote:
>>>     
>>>> Hi
>>>> I have got the exception which is so strange for me.
>>>> Here is the log:
>>>>
>>>> Exception Description: Trying to set value [ejb3.Oebskeyfields@ff00ff0]
>>>> for
>>>> instance variable [oebsId] of type [java.lang.String] in the object. 
>>>> The
>>>> specified object is not an instance of the class or interface declaring
>>>> the
>>>> underlying field, or an unwrapping conversion has failed.
>>>> Internal Exception: java.lang.IllegalArgumentException
>>>> Mapping: org.eclipse.persistence.mappings.OneToOneMapping[oebsId]
>>>> Descriptor: RelationalDescriptor(ejb3.OebsView -->
>>>> [DatabaseTable(OEBS_VIEW)])
>>>>
>>>> The ejb3.Oebskeyfields has not got the oebsId attribute.
>>>> This is truth but my code is trying to get the instance of another
>>>> class
>>>> ejb3.OebsView by invoking the next() method of cursor.
>>>> These classes are joined as one to one by the oebsId attribute.
>>>>
>>>> Here is my code:
>>>>
>>>> ...
>>>> ReadAllQuery queryByTime = new ReadAllQuery(OebsView.class, where);
>>>> queryByTime.useScrollableCursor();
>>>> ...
>>>> cursorByTimeAndOrganizationId = (ScrollableCursor)
>>>> uow.executeQuery(queryByTime);
>>>> ...
>>>> Vector<ejb3.OebsView> oebsList = new Vector<ejb3.OebsView>();
>>>> oebsList = cursorByTimeAndOrganizationId.next(q);
>>>> ...
>>>>
>>>> I can not understand at all why does it try to set value of the
>>>> ejb3.Oebskeyfields class?
>>>>
>>>>
>>>> Regards
>>>> Dmitry
>>>>
>>>>
>>>>
>>>>   
>>>>       
>>> _______________________________________________
>>> eclipselink-users mailing list
>>> eclipselink-users@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>
>>>
>>>     
>>
>>   
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
> 
> 

-- 
View this message in context: http://www.nabble.com/java.lang.IllegalArgumentException-tp19488247p19508289.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.