Hi

I am started using Object Api. Jackson parser is giving the following error
when I wanted to convert my User object to JSON string after detach.

Direct self-reference leading to cycle (through reference chain:
com.xxx.commons.model.User_$$_javassist_0["handler"]->com.orientechnologies.orient.object.enhancement.OObjectProxyMethodHandler["doc"]->com.orientechnologies.orient.core.record.impl.ODocument["schemaClass"]->com.orientechnologies.orient.core.metadata.schema.OClassImpl["document"]->com.orientechnologies.orient.core.record.impl.ODocument["owner"]->com.orientechnologies.orient.core.record.impl.ODocument["identity"]->com.orientechnologies.orient.core.id.ORecordId["identity"])

Can any one help me? Thank you very much in advance.


On Mon, Jun 15, 2015 at 6:26 PM xvik <[email protected]> wrote:

> Simple annotate id field with @Id in your pojo
>
> @javax.persistence.Id
> private String id
>
> Also, if you use optimistic locking transactions you will need to map
> version:
>
> @javax.persistece.Version
> private Long version
>
> Overall object api is very close to JPA: read object -> update object ->
> save object
>
> понедельник, 15 июня 2015 г., 18:51:04 UTC+6 пользователь Chaitanya Reddy
> написал:
>>
>> One more question regarding Object Api.
>>
>> See I have read a Object with SQL query, and want to update it? How can I
>> do that? How can I get RID from pojo?
>>
>>
>> On Mon, Jun 15, 2015 at 6:04 PM xvik <[email protected]> wrote:
>>
>>> Just to be clear: there is no objectdb or documentdb; storage format is
>>> the same for all database types (document).
>>> There are just different apis above this.
>>>
>>> You could save entity with object api and read it with document api (and
>>> vice versa). The same with graph api.
>>> Sql engine is also generic and api type simply defines result objects
>>> (ODocument, Vertex or pojo).
>>>
>>> I didn't have any benchmarks.. most of the time it simply works fast
>>> enough
>>>
>>> понедельник, 15 июня 2015 г., 18:22:34 UTC+6 пользователь Chaitanya
>>> Reddy написал:
>>>>
>>>> Cool. That means, ObjectDb uses DocumentDb under the hood. When ever we
>>>> want we can just migrate to it? Which looks good to me. Thank you for the
>>>> clarification. If possible provide me benchmarks.
>>>>
>>>> On Mon, Jun 15, 2015 at 5:37 PM xvik <[email protected]> wrote:
>>>>
>>>>> Thank you for the link.
>>>>> 50% of document speed caused by document<-->pojo conversion and proxy
>>>>> maintenance.
>>>>> In relation to overall performance, it's still very fast.
>>>>>
>>>>> Any other pojo mapping implementation would also be slower comparing
>>>>> to raw apis because of the same reasons.
>>>>>
>>>>> I will start a new thread to ask developers about the future of object
>>>>> api in the next releases.
>>>>>
>>>>> понедельник, 15 июня 2015 г., 17:55:25 UTC+6 пользователь Chaitanya
>>>>> Reddy написал:
>>>>>>
>>>>>> Here <http://orientdb.com/docs/last/Java-API.html>. Under Object
>>>>>> API, it says not improved from version 1.5. In Feature Matrix table in
>>>>>> speed row, it was mentioned as 50% slower compared with Document API.
>>>>>>
>>>>>> On Mon, Jun 15, 2015 at 5:21 PM xvik <[email protected]> wrote:
>>>>>>
>>>>>>> Where did you find that object api is not improved?
>>>>>>>
>>>>>>> I know that orient developers suggest to use document or graph
>>>>>>> apis and I don't understand it.
>>>>>>> Object api is pretty good and very easy to use.
>>>>>>> Besides, orient apis are interchangeable (mostly) at any time.
>>>>>>> Internally object api build on top of document api.
>>>>>>>
>>>>>>> Regarding jackson and gson: something like this is definitely
>>>>>>> possible (and should be quite easy to do), but current object api 
>>>>>>> supports
>>>>>>> "lazy loading" (like in hibernate).
>>>>>>> For some situations, this could be very helpful.
>>>>>>>
>>>>>>> понедельник, 15 июня 2015 г., 17:21:04 UTC+6 пользователь Chaitanya
>>>>>>> Reddy написал:
>>>>>>>>
>>>>>>>> But for as per the documentation, Object API not being improved. Is
>>>>>>>> it good to use it, why can't we have a jackson or gson kind of 
>>>>>>>> conversion
>>>>>>>> b/w pojo to json and vice versa?
>>>>>>>>
>>>>>>>> On Mon, Jun 15, 2015 at 3:58 PM xvik <[email protected]> wrote:
>>>>>>>>
>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> If you want to work with pojo you need to use object api instead
>>>>>>>>> of document api.
>>>>>>>>> Look here for examples
>>>>>>>>> http://orientdb.com/docs/last/orientdb.wiki/Object-Database.html
>>>>>>>>>
>>>>>>>>> понедельник, 15 июня 2015 г., 16:20:50 UTC+6 пользователь Giulia
>>>>>>>>> Brignoli написал:
>>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> Try this:
>>>>>>>>>>
>>>>>>>>>> public static void main(String[] args) {
>>>>>>>>>> ODatabaseDocumentTx db =   new ODatabaseDocumentTx(path);
>>>>>>>>>> if (db.exists()){
>>>>>>>>>> db.open("admin","admin");
>>>>>>>>>> }else {
>>>>>>>>>> db.create();
>>>>>>>>>> // create a contact
>>>>>>>>>> Contact c = new Contact();
>>>>>>>>>>
>>>>>>>>> c.setEmail("[email protected]");
>>>>>>>>>>
>>>>>>>>> c.setNumber(123456789L);
>>>>>>>>>> // create list of contact
>>>>>>>>>> List<Contact> list = new ArrayList<Contact>();
>>>>>>>>>> list.add(c);
>>>>>>>>>> //  Insert date into class User
>>>>>>>>>> User user = new User();
>>>>>>>>>> user.setFirstName("Chaitanya Reddy");
>>>>>>>>>> user.setLastName("Tatipart");
>>>>>>>>>> user.setContacts(list);
>>>>>>>>>> // create a document
>>>>>>>>>> ODocument doc_user = new ODocument("User");
>>>>>>>>>> doc_user.field("FirstName", user.getFirstName());
>>>>>>>>>> doc_user.field("LastName", user.getLastName());
>>>>>>>>>> doc_user.field("Contact", user.getContacts().toString());
>>>>>>>>>> // save document
>>>>>>>>>> doc_user.save();
>>>>>>>>>>
>>>>>>>>>> }
>>>>>>>>>> // close db
>>>>>>>>>> db.close();
>>>>>>>>>>
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> In this way you insert a object in OrientDB, in fact if you look
>>>>>>>>>> to visual studio you obtain:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> <https://lh3.googleusercontent.com/-4LiDmcJyXfk/VX6mASfbdvI/AAAAAAAAAE0/65aCPZrBDj0/s1600/Immagine.png>
>>>>>>>>>>
>>>>>>>>>> PS: i create a plocal DB, if you have a remote database the class
>>>>>>>>>> is a little be different.
>>>>>>>>>>
>>>>>>>>>> Bye, Giulia.
>>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>>
>>>>>>>>> ---
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "OrientDB" group.
>>>>>>>>>
>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to [email protected].
>>>>>>>>
>>>>>>>>
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>>  --
>>>>>>>
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "OrientDB" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>  --
>>>>>
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "OrientDB" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>  --
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "OrientDB" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "OrientDB" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to