source: mauRepo/MolesManager/trunk/src/libs/epb.py @ 8147

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/mauRepo/MolesManager/trunk/src/libs/epb.py@8147
Revision 8147, 1.5 KB checked in by mnagni, 8 years ago (diff)

Implementation of tickets #22390

Line 
1'''
2Created on 10 Jan 2012
3
4@author: mnagni
5'''
6from sqlalchemy.orm import subqueryload
7from sqlalchemy.sql.expression import text
8
9class EPB(object):
10
11    @classmethod
12    def buildFilter(self, key, keyValue):
13        return '%s = \'%s\'' % (key, keyValue)
14
15    @classmethod
16    def search(self, clazz, inst_id, session):         
17        res = session.query(clazz).get(inst_id)
18        if res is None:
19            return None
20        return res
21
22    @classmethod
23    def searchEager(self, clazz, inst_id, session):         
24        res = session.query(clazz).options(subqueryload('*')).get(inst_id)
25        if res is None:
26            return None
27        return res
28
29    @classmethod   
30    def searchOrCreate(self, clazz, session, clazz_id = None):
31        if clazz_id is not None:
32            return EPB.search(clazz, clazz_id, session)
33        else:                       
34            return clazz()
35       
36
37    @classmethod
38    def getAllObjects(self, clazz, session):     
39        res = session.query(clazz)
40        if res is None:
41            return None
42        return res
43
44    @classmethod
45    def executeNative(self, sqlNative, session):
46        return session.execute(text(sqlNative))     
47
48    @classmethod
49    def _getSession(self, dbManager, session = None):
50        if session:
51            return session       
52        return dbManager.createDbSession()
53
54    @classmethod
55    def _closeSession(self, session):
56        if session is not None:
57            return
58        session.commit()
59        session.close()
Note: See TracBrowser for help on using the repository browser.