Feature #31803

Accessing Query Builder

Added by Carsten Bleicker over 1 year ago. Updated about 1 year ago.

Status:New Start date:2011-11-14
Priority:Should have Due date:
Assignee:- % Done:

0%

Category:Persistence
Target version:-
PHP Version:5.3 Complexity:
Has patch:No
Votes: 2 (View)

Description

Hi Folks,
i need a special query with additional fields in select statement and a HAVING.
for example:
$query = "SELECT ort, plz, (
".$radius." * SQRT) *
cos(".$rad_b.") * (sin(RADIANS) *
sin(".$rad_l.") + cos(RADIANS) *
cos(".$rad_l.")) - sin(RADIANS) * sin(".$rad_b.")))) AS Distance
FROM plz Having Distance <= ".$umkreis."
ORDER BY Distance
";

as far as i know i can add special fields with:
$this->queryBuilder()->add(); by the queryBuilder of \TYPO3\FLOW3\Persistence\Doctrine\Query.
But the query builder is protected and there is no getter for it.
It is a good or a bad idea to add public function getQueryBuilder into the Query Class to enable a usage like:
$this->query->getQueryBuilder->add('select'...)?

if anybody could tell me how to do the query above, please tell me.

thanks a lot!
carsten

History

Updated by Carsten Bleicker over 1 year ago

if queryBuilder is accessible the whole power of doctrine could be used by default in repositories.
for example:
$this->query->getQueryBuilder()->join()
or $this->query->getQueryBuilder()->having().

but in case i make it public and build the guery as above the CountWalker throws exceptions because some vars missing in $this->_getQueryComponents()
if something is in select wich has nothing to do with properties of the model.

i dont know exactly. but is doctrine configuration also available somewhere?
if it isnt it would be also usefull to do to register some functions for Doctrine\ORM\Query\AST\Functions.
for example:
$query->getEntityManager()->getConfiguration()->addCustomNumericFunction('ACOS','BLEICKER\Social\Persistence\Doctrine\ORM\Query\AST\Functions\AcosFunction');

Updated by Karsten Dambekalns over 1 year ago

  • Target version deleted (1.0.1)

Updated by Karsten Dambekalns about 1 year ago

  • Tracker changed from Bug to Feature

Also available in: Atom PDF