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

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

Implementation of tickets #22386, #22387

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