That's what I do in most circumstances. In this case I'm building a more
complicated query and was hoping to do something like
sess.query(Employee).filter(
or_(
and_(isclass(Manager), Manager.name.startswith('Jo')),
and_(isclass(Engineer),
Engineer.engineer_info.startswith('Design')),
...
...
)
)
instead of performing multiple queries.
On Wednesday, May 30, 2018 at 12:50:40 PM UTC-5, Mike Bayer wrote:
>
> On Wed, May 30, 2018 at 12:39 PM, Derek Lambert
> <[email protected] <javascript:>> wrote:
> > Outside of checking the discriminator value is it possible to filter a
> query
> > by a class in an inheritance mapping?
> >
> > class Employee(Base):
> > __tablename__ = 'employee'
> > id = Column(Integer, primary_key=True)
> > name = Column(String(50))
> > type = Column(String(20))
> >
> > __mapper_args__ = {
> > 'polymorphic_on':type,
> > 'polymorphic_identity':'employee'
> > }
> >
> > class Manager(Employee):
> > manager_data = Column(String(50))
> >
> > __mapper_args__ = {
> > 'polymorphic_identity':'manager'
> > }
> >
> > class Engineer(Employee):
> > engineer_info = Column(String(50))
> >
> > __mapper_args__ = {
> > 'polymorphic_identity':'engineer'
> > }
> >
> > and then query something like:
> >
> > engineers = session.query(Employee).filter(isclass(Engineer)).all()
>
> I'm sure you know the easiest way is query for that class:
>
> sess.query(Engineer).all()
>
>
> short of that you can try changing the entitiy:
>
> sess.query(Employee).with_entities(Engineer).all()
>
>
>
>
> >
> > --
> > SQLAlchemy -
> > The Python SQL Toolkit and Object Relational Mapper
> >
> > http://www.sqlalchemy.org/
> >
> > To post example code, please provide an MCVE: Minimal, Complete, and
> > Verifiable Example. See http://stackoverflow.com/help/mcve for a full
> > description.
> > ---
> > You received this message because you are subscribed to the Google
> Groups
> > "sqlalchemy" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an
> > email to [email protected] <javascript:>.
> > To post to this group, send email to [email protected]
> <javascript:>.
> > Visit this group at https://groups.google.com/group/sqlalchemy.
> > For more options, visit https://groups.google.com/d/optout.
>
--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper
http://www.sqlalchemy.org/
To post example code, please provide an MCVE: Minimal, Complete, and Verifiable
Example. See http://stackoverflow.com/help/mcve for a full description.
---
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.