:-) I saw that too, thanks for sharing!
On Sunday, December 27, 2015 at 12:43:41 AM UTC+1, machak wrote: > > > > On Sunday, December 27, 2015 at 12:34:01 AM UTC+1, machak wrote: >> >> Hi Eric, >> >> On Saturday, December 26, 2015 at 11:20:33 PM UTC+1, Erik Pragt wrote: >>> >>> >>>> I haven't used Object database, but I would expect it needs a >>>> proxy-entity, so you would probably need to fetch - update, >>>> see >>>> http://orientdb.com/docs/2.0/orientdb.wiki/Object-2-Record-Java-Binding.html >>>> " >>>> You can save a POJO to the database by calling the method save(pojo). >>>> If the POJO is already a proxied instance, then the database will just >>>> save >>>> the record bounded to it. In case the object is not proxied the database >>>> will serialize it and save the corresponded record: *In this case the >>>> object MUST be reassinged with the one returned by the database* >>>> " >>>> >>>> >>> Hi /m, >>> >>> Thanks for the reply, but I've read the above 3 times now, and I still >>> don't know what it means. I have no proxied object, just a normal POJO, so >>> this should apply: >>> >>> "In case the object is not proxied the database will serialize it and >>> save the corresponded record: *In this case the object MUST be >>> reassinged with the one returned by the database"* >>> "In case the object is not proxied the database serialize it and save >>> the corresponded record"...okay, I think I know what that means, cause >>> that's what I'm trying, and then: >>> *"In this case the object MUST be reassinged with the one returned by >>> the database"*....ehh...wot? In this case the object must be what? >>> Reassinged? Reassigned? I unfortunately have no idea what it means. >>> >>> I think I have a simple use case: >>> I want to create new Book, save it (create a new one in the db), change >>> eg. the title, and save it again (ie updating the values). But the above >>> text helps little in accomplishing that. I'll have a look at the fetching >>> though (would that be the same as loading? (public <RET> RET load(final >>> Object >>> iPojo) >>> >>> I have no idea what an iPojo is. Is says it's "the entity to load". But >>> that's not really clear, especially when the code examples show only >>> examples with rids: Animal animal = database.load(rid); (see >>> http://orientdb.com/docs/2.0/orientdb.wiki/Object-Database.html). So, >>> an iPojo is an rid??? I'm confused :) >>> >>> Cheers, Erik >>> >>> >> >> it is pretty simple: >> you can create an object yourself (e.g. new Object()). That object is in >> your control, none proxy one. Object you retrieve through orient entity >> manager, is proxy one, backed by entity manager. >> In second case any value you change and you call save, changes will be >> done on existing object: simply because object has an id (RID)... >> I don't know about "reassigned" description, but I guess, they mean >> *values* need to be reassigned (copied over?) it is confusing. >> >> In any case, what you should try is following: >> >> // save new object: >> MyObject *foo* = save(new MyObject()); >> // update some properties: >> *foo*.setProperty("bar", "foobar") >> // update object >> save(*foo*); >> >> > > ha, just saw, there is a compete example with proxied objects (docs page): > > // OPEN THE DATABASE > OObjectDatabaseTx db = new OObjectDatabaseTx > ("remote:localhost/petshop").open("admin", "admin"); > // REGISTER THE CLASS ONLY ONCE AFTER THE DB IS OPEN/CREATED > db.getEntityManager().registerEntityClasses("foo.domain"); > // CREATE A NEW PROXIED OBJECT AND FILL IT > Account account = db.newInstance(Account.class); > account.setName( "Luke" ); > account.setSurname( "Skywalker" ); > > City rome = db.newInstance(City.class,"Rome", > db.newInstance(Country.class,"Italy")); > account.getAddresses().add(new Address("Residence", rome, "Piazza Navona, > 1")); > > db.save( account ); > // CREATE A NEW OBJECT AND FILL IT > Account account = new Account(); > account.setName( "Luke" ); > account.setSurname( "Skywalker" ); > > City rome = new City("Rome", new Country("Italy")); > account.getAddresses().add(new Address("Residence", rome, "Piazza Navona, > 1")); > // SAVE THE ACCOUNT: THE DATABASE WILL SERIALIZE THE OBJECT AND GIVE THE > PROXIED INSTANCE > account = db.save( account ); > > > > >> cheers >> /m >> >> >> >>> >>> >>> >>> >>> >>> >>>> hth, >>>> cheers >>>> /m >>>> >>>> >>>>> >>>>> Thanks, >>>>> >>>>> >>>>> Erik >>>>> >>>>> >>>>> -- --- 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.
