Hi Ersin, The problem seems to be in the python driver, did you try to run the queries in Studio and see if they work fine?
If you are using OrientDB v 3.0 RC you can write a query as follows: MATCH {class:Company, as:company} <-PersonnelRelation- {as:person} RETURN company:{*}, person:{*} This is kind of an inner join based on PersonnelRelation. You can also add WHERE conditions to the pattern to filter the result, see http://orientdb.com/docs/3.0.x/sql/SQL-Match.html Thanks Luigi 2018-03-25 12:48 GMT+02:00 Ersin Sevinc <ersinse...@gmail.com>: > Thanks alot Luigi. You guys are really helping all developers. But i' ve > an extra question for you :/ > > We have some problems about OrientObject is not Json serializable Error. > > Let me explain our code in simple way. We have > Customers,Admins(Company),Product,Personel > classes and CRUD for all of them in back end (Python). > > HERE IS MY VERTEX > > createPersonel = configDb.client.command("create vertex PersonelInformation > set Adress ='" + adress > + "',""CitizenId='" + citizenId + > "',CompanyCode='" + companyCode > + "',""Email='" + email + "',Name='" > + name + "', Surname='" + surname > + "',Phone=" + phone) > > ------------------------------------------------------------ > ------------------------------------------------------------ > ---------------------------------------------------- > > HERE IS MY EDGE > > createRelation = configDb.client.command("create edge PersonelRelation from " > + personelRid + " to " + companyRid + "' ") > ------------------------------------------------------------------------------- > > SELECT QUERY FOR ALL INFORMATIONS IN CLASS > > all = [] > data = configDb.client.command("select * from PersonelInformation") > for i in range(0, len(data)): > all.append(data[i].oRecordData) > return json.dumps(all) > > > > ------------------------------------------------------------ > ------------------------------------------------------------- > > Everything is fine except select query, I can not see the relationship. > When there is a relation in some records , after execute the query i get > this error . > > [2018-03-25 13:24:49,575] ERROR in app: Exception on /personelInfo/getAll > [GET] > Traceback (most recent call last): > File "D:\Outputs\pyCharm\rms\venv\lib\site-packages\flask\app.py", line > 1982, in wsgi_app > response = self.full_dispatch_request() > File "D:\Outputs\pyCharm\rms\venv\lib\site-packages\flask\app.py", line > 1614, in full_dispatch_request > rv = self.handle_user_exception(e) > File "D:\Outputs\pyCharm\rms\venv\lib\site-packages\flask\app.py", line > 1517, in handle_user_exception > reraise(exc_type, exc_value, tb) > File "D:\Outputs\pyCharm\rms\venv\lib\site-packages\flask\_compat.py", > line 33, in reraise > raise value > File "D:\Outputs\pyCharm\rms\venv\lib\site-packages\flask\app.py", line > 1612, in full_dispatch_request > rv = self.dispatch_request() > File "D:\Outputs\pyCharm\rms\venv\lib\site-packages\flask\app.py", line > 1598, in dispatch_request > return self.view_functions[rule.endpoint](**req.view_args) > File "D:/Outputs/pyCharm/rms\Middleware\Decator.py", line 16, in > decorated_function > return f(*args, **kwargs) > File "D:/Outputs/pyCharm/rms\Resources\PersonelinformationResource.py", > line 105, in GetAll > return re > File "D:\Outputs\pyCharm\rms\venv\lib\site-packages\flask\json.py", > line 123, in dumps > rv = _json.dumps(obj, **kwargs) > File "D:\Program Files\Python36\Lib\json\_init_.py", line 238, in dumps > **kw).encode(obj) > File "D:\Program Files\Python36\Lib\json\encoder.py", line 199, in > encode > chunks = self.iterencode(o, _one_shot=True) > File "D:\Program Files\Python36\Lib\json\encoder.py", line 257, in > iterencode > return _iterencode(o, 0) > File "D:\Outputs\pyCharm\rms\venv\lib\site-packages\flask\json.py", > line 80, in default > return _json.JSONEncoder.default(self, o) > File "D:\Program Files\Python36\Lib\json\encoder.py", line 180, in > default > o._class.name_) > TypeError: Object of type 'OrientBinaryObject' is not JSON serializable > 127.0.0.1 - - [25/Mar/2018 13:24:49] "GET /personelInfo/getAll HTTP/1.1" > 500 - > > ------------------------------------------------------------ > ------------------------------------------------------------ > --------------------------------------- > IN THE OTHER HAND, When i delete records with relations , My Select query > works fine. I can see all records without relation. > But my main goal is getting companyCode when i query on > PersonelInformation vertex. > > > Also i tried This. > > -select adress from user where = out('PersonelRelation')[0].name = > "orient" > > ------------------------------------------------------------ > ------------------------------------------------------------------------ > > OUT comes like this. > b64:'AQAAAAEAggAAAAAAAAAA' > > IN SHORT my main problem is when i connect the Company And Personel > Classes, i want to see Company class informations over personelInformation > Query. But i dont want to restrict my query like , select from where rid = > 37 > i just want to get company information wihtout giving any company > information in Personel Query. Just want to get informations about Company > in Back end and want to read them. Its not important after a query like = > select from personel where CompanyCode "abc" > > > Really Thanks alot from now > Looking for your answer > > > Regards, > Ersin > > > > > 5 Mart 2018 Pazartesi 12:21:40 UTC+3 tarihinde Luigi Dell'Aquila yazdı: >> >> Hi Ersin, >> >> There is no SQL statement to do this, but you can use Teleporter >> (included in OrientDB Studio) to do a full import from SQL to a pure graph. >> >> About multiple classes as target in a query, you cannot do it that way, >> what you probably need is MATCH https://orientdb.com/docs/3.0. >> x/sql/SQL-Match.html >> >> Thanks >> >> Luigi >> >> >> >> 2018-03-03 19:57 GMT+01:00 Ersin Sevinc <ersin...@gmail.com>: >> >>> Hi there, m new at orient db trying to figure out something about >>> relations , >>> In this code Line => create edge owns from (select from Person where >>> name = 'Matt') to (select from Car where model = 'Ferrari') >>> We have edge between record to record. Its fine for few records. But >>> what will happen if i ve millions of data ? Should i create edge from >>> backend for every new record? >>> Or can i just link the Property Fields like => create edge owns from >>> Person.Name to Car.model ?? >>> >>> I want to know that is there any possible way for relation database like >>> MSSQL , you know in ms sql , we can create PK and FK between Fields , with >>> that way we do not need to create relations for every new record. >>> >>> Here another question -> select car.model person.name from car, person >>> Where .............................. I think i can not use 2 >>> different class after FROM m i right ? >>> >>> 27 Mart 2014 Perşembe 17:03:33 UTC+3 tarihinde Andrey Lomakin yazdı: >>>> >>>> Hi, >>>> Could you try >>>> >>>> select name from Person where gender = 'M' and out('owns')[0].model = >>>> "Ferrari" and out('likes')[0].mov_name = "Need For Speed" >>>> >>>> >>>> On Thu, Mar 27, 2014 at 5:13 AM, Joel Mathew <meet...@gmail.com> wrote: >>>> >>>>> Hi group, >>>>> I have below schema with three classes >>>>> >>>>> orientdb {demo1}> select from Person >>>>> ----+-----+-----+------+--------+--------- >>>>> # |@RID |name |gender|out_owns|out_likes >>>>> ----+-----+-----+------+--------+--------- >>>>> 0 |#11:0|Matt |M |#12:0 |#13:0 >>>>> 1 |#11:1|Helen|F |#12:1 |#13:1 >>>>> ----+-----+-----+------+--------+--------- >>>>> >>>>> orientdb {demo1}> select from Car >>>>> ----+-----+-------+------- >>>>> # |@RID |model |in_owns >>>>> ----+-----+-------+------- >>>>> 0 |#12:0|Ferrari|#11:0 >>>>> 1 |#12:1|BMW |#11:1 >>>>> ----+-----+-------+------- >>>>> >>>>> orientdb {demo1}> select from Movie >>>>> ----+-----+--------------+-------- >>>>> # |@RID |mov_name |in_likes >>>>> ----+-----+--------------+-------- >>>>> 0 |#13:0|Need For Speed|#11:0 >>>>> 1 |#13:1|Matrix |#11:1 >>>>> ----+-----+--------------+-------- >>>>> >>>>> Person(name,gender) >>>>> Car(model) >>>>> Movie(mov_name) >>>>> Person > owns > Car >>>>> Person > likes > Movie >>>>> >>>>> I'm looking at a query which matches values across three classes >>>>> across the edges >>>>> Find Person.name where Person.gender='M' and who owns >>>>> Car.model='Ferrari' and who likes Movie.mov_name='Need For Speed' >>>>> >>>>> One way to achieve the same with gremlin is >>>>> g.V('@class','Car').has('model','Ferrari').in('owns').has('@ >>>>> class','Person').has('gender','M').as('x').out('likes').has( >>>>> '@class','Movie').has('mov_name','Need For Speed').select(["x"]) >>>>> I'm using OrientDB 1.7-rc2-SNAPSHOT.. >>>>> Please help me with some pointers towards equivalent orientdb sql. >>>>> >>>>> Thanks, >>>>> Mathew >>>>> >>>>> >>>>> -- >>>>> >>>>> --- >>>>> 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 orient-databa...@googlegroups.com. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>> >>>> -- >>>> Best regards, >>>> Andrey Lomakin. >>>> >>>> Orient Technologies >>>> the Company behind OrientDB >>>> >>>> -- >>> >>> --- >>> 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 orient-databa...@googlegroups.com. >>> 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 orient-database+unsubscr...@googlegroups.com. > 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 orient-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.