Bug #27057
closedCan't query on properties of child objects of the same class
100%
Description
Given a domain model that has a connection to another object of the same class like this:
class Tx_Whatever_Domain_Model_Foo { /** * @var Tx_Whatever_Domain_Model_Foo */ protected $parent; }
And given this repository method:
class Tx_Whatever_Domain_Repository_FooRepository { public findByParentTitle($title) { $query = $this->createQuery(); return $query->matching($query->equals('parent.title', $title))->execute(); } }
Running $repository->findByParentTitle('test');
, extbase generates invalid SQL and crashes.
An error occured. Exception thrown: Tx_Extbase_Persistence_Storage_Exception_SqlError Error message: Not unique table/alias: 'tx_whatever_domain_model_foo': SELECT DISTINCT tx_whatever_domain_model_foo.* FROM tx_whatever_domain_model_foo LEFT JOIN tx_whatever_domain_model_foo ON tx_whatever_domain_model_foo.parent=tx_whatever_domain_model_foo.uid WHERE tx_whatever_domain_model_foo.parent = 'test' AND ...
Updated by Alexander Schnitzler over 11 years ago
- Status changed from New to Accepted
- Assignee set to Alexander Schnitzler
- Target version set to 1843
Can be reproduced, try to fix this.
Updated by Gerrit Code Review over 11 years ago
- Status changed from Accepted to Under Review
Patch set 1 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/16535
Updated by Gerrit Code Review over 11 years ago
Patch set 2 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/16535
Updated by Gerrit Code Review over 11 years ago
Patch set 1 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/16537
Updated by Alexander Schnitzler over 11 years ago
- Target version changed from 1843 to Extbase 6.0
Updated by Anonymous over 11 years ago
- Status changed from Under Review to Resolved
- % Done changed from 0 to 100
Applied in changeset commit:36203cc17d46ac07088ddd17f21440c00a46a969.
Updated by Mathias Brodala almost 11 years ago
This error still appears in the current stable release (6.1.1) with this simple setup:
Domain model
namespace TEST\RelationQueryTest\Domain\Model; class Element extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity { /** * @var \string * @validate NotEmpty */ protected $title; /** * @var \TEST\RelationQueryTest\Domain\Model\Element */ protected $relatedElement; /* getters/setters ommitted */ }
Domain repository
namespace TEST\RelationQueryTest\Domain\Repository; class ElementRepository extends \TYPO3\CMS\Extbase\Persistence\Repository { /** * @param \string $title * @return \TYPO3\CMS\Extbase\Persistence\QueryResultInterface|array */ public function findByRelatedElementTitle($title) { $query = $this->createQuery(); return $query->matching($query->equals('relatedElement.title', $title))->execute(); } }
TCA configuration
$TCA['tx_relationquerytest_domain_model_element'] = array( /* ctrl, interface, types omitted */ 'columns' => array( 'title' => array( 'exclude' => 0, 'label' => 'Title', 'config' => array( 'type' => 'input', 'size' => 30, 'eval' => 'trim,required' ), ), 'related_element' => array( 'exclude' => 0, 'label' => 'Related element', 'config' => array( 'type' => 'inline', 'foreign_table' => 'tx_relationquerytest_domain_model_element', 'minitems' => 0, 'maxitems' => 1, 'appearance' => array( 'collapseAll' => 0, 'levelLinksPosition' => 'top', 'showSynchronizationLink' => 1, 'showPossibleLocalizationRecords' => 1, 'showAllLocalizationLink' => 1 ), ), ), ), );
The error again:
#1247602160: Not unique table/alias: 'tx_relationquerytest_domain_model_element': SELECT COUNT(DISTINCT tx_relationquerytest_domain_model_element.uid) FROM tx_relationquerytest_domain_model_element LEFT JOIN tx_relationquerytest_domain_model_element ON tx_relationquerytest_domain_model_element.related_element=tx_relationquerytest_domain_model_element.uid WHERE tx_relationquerytest_domain_model_element.title = 'A' AND tx_relationquerytest_domain_model_element.deleted=0 AND tx_relationquerytest_domain_model_element.t3ver_state<=0 AND tx_relationquerytest_domain_model_element.pid<>-1 AND tx_relationquerytest_domain_model_element.hidden=0 AND tx_relationquerytest_domain_model_element.starttime<=1374245400 AND (tx_relationquerytest_domain_model_element.endtime=0 OR tx_relationquerytest_domain_model_element.endtime>1374245400 ) AND (tx_relationquerytest_domain_model_element.sys_language_uid IN (0,-1)) AND tx_relationquerytest_domain_model_element.pid IN (7)
There is no passthrough
in the TCA configuration anywhere as mentioned in the commit message. How can one fix this error?
Updated by Gerrit Code Review over 9 years ago
- Status changed from Resolved to Under Review
Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/33956
Updated by Alexander Stehlik over 9 years ago
I stumbled over the same issue and as far as I can see the patch from Alex did not resolve it.
This can be easily reproduces with a functional test (see first patch in the review system).
@Mathias: does the patch from http://review.typo3.org/33956 resolve the issue for you?
Updated by Gerrit Code Review over 9 years ago
Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/33956
Updated by Gerrit Code Review over 9 years ago
Patch set 3 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/33956
Updated by Alexander Opitz over 9 years ago
- Project changed from 534 to TYPO3 Core
- Category changed from Extbase: Generic Persistence to Extbase
- Target version changed from Extbase 6.0 to 7.0
- TYPO3 Version set to 6.2
- Is Regression set to No
Updated by Gerrit Code Review over 9 years ago
Patch set 4 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/33956
Updated by Gerrit Code Review over 9 years ago
Patch set 5 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/33956
Updated by Mathias Schreiber over 9 years ago
- Target version changed from 7.0 to 7.1 (Cleanup)
Updated by Gerrit Code Review about 9 years ago
Patch set 6 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/33956
Updated by Benni Mack almost 9 years ago
- Target version changed from 7.1 (Cleanup) to 7.4 (Backend)
Updated by Susanne Moog over 8 years ago
- Target version changed from 7.4 (Backend) to 7.5
Updated by Gerrit Code Review over 8 years ago
Patch set 7 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/33956
Updated by Gerrit Code Review over 8 years ago
Patch set 8 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/33956
Updated by Gerrit Code Review over 8 years ago
Patch set 9 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/33956
Updated by Stephan Großberndt over 8 years ago
- Target version set to 7 LTS
- TYPO3 Version changed from 6.2 to 7
Updated by Gerrit Code Review over 8 years ago
Patch set 10 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/33956
Updated by Gerrit Code Review over 8 years ago
Patch set 11 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/33956
Updated by Alexander Stehlik over 8 years ago
- Status changed from Under Review to Resolved
Applied in changeset 755a948bea34d2269dc77720d37091bba5105a0b.
Updated by Riccardo De Contardi over 6 years ago
- Status changed from Resolved to Closed