j2a
Можно
ок. спасибо ;-)
Покопался в форуме и документации, и сделал так:
...
import schema as s
...
class User(OrmObject):
@classmethod
def get_next_unprocessed(cls):
user = cls.query.from_statement("select * from %s "
"where status=:status for update" % s.users.name).\
params(status=ST_UNPROCESSED).first()
if user:
session = object_session(user)
user.status = ST_HZ
session.commit()
return user
Session.mapper(Users, s.users)
Есть ли более внятная, чем та что у меня, замена select … for update?
Не нравится работа с сессией в этом коде, как то не упорядочено: просто cls.query для селекта, в то же время получение сессии объекта и session.commit() для апдейта, смешиваются два разных стиля (а это не хорошо :-)… может можно как то по-другому?
Поделитесь, плз, подходами к созданию подобных кастомных методов.