Doctrine Entities Annotated Repository Class not working

I am building a package which, among other things, tracks Property Tax Rates. I wanted to use Doctrine Entities to setup the db AND have a custom repository class… I can’t get the last bit working though. Was wondering if I could get some help, as I suppose this would be easy for someone with more concrete experience.

I have:
packages/property_tax_rates/src/Concrete/Entity/PropertyTaxRate.php

<?php

namespace Concrete\Package\PropertyTaxRates\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="Concrete\Package\PropertyTaxRates\Repository\PropertyTaxRate")
 * @ORM\Table(name="PropertyTaxRate")
 */
class PropertyTaxRate
{
  // does stuff 
}

and packages/property_tax_rates/src/Concrete/Repository/PropertyTaxRate.php

<?php

namespace Concrete\Package\PropertyTaxRates\Repository;

class PropertyTaxRate extends BaseRepository
{
    public function truncate() { 
      // does stuff 
    }
}

However, when I try to run

Package::getByHandle($this->pkg)->getEntityManager()->getRepository(PropertyTaxRate::class)->truncate();

The response is…

Handling "Concrete\Package\PropertyTaxRates\Command\FetchPropertyTaxRatesCommand" failed: Undefined method "truncate". The method name must start with either findBy, findOneBy or countBy!

Details

/var/www/html/concrete/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php(80): Symfony\Component\Messenger\Exception\HandlerFailedException->null	
/var/www/html/concrete/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php(260): BadMethodCallException->null	
/var/www/html/packages/property_tax_rates/src/Command/FetchPropertyTaxRatesCommandHandler.php(62): Doctrine\ORM\EntityRepository->__call	
/var/www/html/concrete/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php(63): Concrete\Package\PropertyTaxRates\Command\FetchPropertyTaxRatesCommandHandler->__invoke	
/var/www/html/concrete/vendor/symfony/messenger/Middleware/SendMessageMiddleware.php(74): Symfony\Component\Messenger\Middleware\HandleMessageMiddleware->handle	
/var/www/html/concrete/vendor/symfony/messenger/Middleware/FailedMessageProcessingMiddleware.php(34): Symfony\Component\Messenger\Middleware\SendMessageMiddleware->handle	
/var/www/html/concrete/vendor/symfony/messenger/Middleware/DispatchAfterCurrentBusMiddleware.php(68): Symfony\Component\Messenger\Middleware\FailedMessageProcessingMiddleware->handle	
/var/www/html/concrete/vendor/symfony/messenger/Middleware/RejectRedeliveredMessageMiddleware.php(48): Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware->handle	
/var/www/html/concrete/vendor/symfony/messenger/Middleware/AddBusNameStampMiddleware.php(37): Symfony\Component\Messenger\Middleware\RejectRedeliveredMessageMiddleware->handle	
/var/www/html/concrete/vendor/symfony/messenger/MessageBus.php(77): Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware->handle	
/var/www/html/concrete/src/Command/Task/Runner/Context/DashboardContext.php(14): Symfony\Component\Messenger\MessageBus->dispatch	
/var/www/html/concrete/src/Command/Task/Runner/CommandTaskRunnerHandler.php(46): Concrete\Core\Command\Task\Runner\Context\DashboardContext->dispatchCommand	
/var/www/html/concrete/controllers/Backend/Tasks.php(109): Concrete\Core\Command\Task\Runner\CommandTaskRunnerHandler->run	
/var/www/html/concrete/src/Controller/AbstractController.php(318): Concrete\Controller\Backend\Tasks->execute	
/var/www/html/concrete/src/Controller/AbstractController.php(318): null->call_user_func_array	
/var/www/html/concrete/src/Routing/ControllerRouteAction.php(64): Concrete\Core\Controller\AbstractController->runAction	
/var/www/html/concrete/src/Http/RouteDispatcher.php(37): Concrete\Core\Routing\ControllerRouteAction->execute	
/var/www/html/concrete/src/Http/Middleware/DispatcherDelegate.php(39): Concrete\Core\Http\RouteDispatcher->dispatch	
/var/www/html/concrete/src/Http/Middleware/MiddlewareStack.php(86): Concrete\Core\Http\Middleware\DispatcherDelegate->next	
/var/www/html/concrete/src/Http/DefaultDispatcher.php(127): Concrete\Core\Http\Middleware\MiddlewareStack->process	
/var/www/html/concrete/src/Http/DefaultDispatcher.php(60): Concrete\Core\Http\DefaultDispatcher->handleDispatch	
/var/www/html/concrete/src/Http/Middleware/DispatcherDelegate.php(39): Concrete\Core\Http\DefaultDispatcher->dispatch	
/var/www/html/concrete/src/Http/Middleware/FrameOptionsMiddleware.php(39): Concrete\Core\Http\Middleware\DispatcherDelegate->next	
/var/www/html/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\FrameOptionsMiddleware->process	
/var/www/html/concrete/src/Http/Middleware/StrictTransportSecurityMiddleware.php(36): Concrete\Core\Http\Middleware\MiddlewareDelegate->next	
/var/www/html/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\StrictTransportSecurityMiddleware->process	
/var/www/html/concrete/src/Http/Middleware/ContentSecurityPolicyMiddleware.php(36): Concrete\Core\Http\Middleware\MiddlewareDelegate->next	
/var/www/html/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\ContentSecurityPolicyMiddleware->process	
/var/www/html/concrete/src/Http/Middleware/CookieMiddleware.php(35): Concrete\Core\Http\Middleware\MiddlewareDelegate->next	
/var/www/html/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\CookieMiddleware->process	
/var/www/html/concrete/src/Http/Middleware/ApplicationMiddleware.php(29): Concrete\Core\Http\Middleware\MiddlewareDelegate->next	
/var/www/html/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\ApplicationMiddleware->process	
/var/www/html/concrete/src/Http/Middleware/MiddlewareStack.php(86): Concrete\Core\Http\Middleware\MiddlewareDelegate->next	
/var/www/html/concrete/src/Http/DefaultServer.php(85): Concrete\Core\Http\Middleware\MiddlewareStack->process	
/var/www/html/concrete/src/Foundation/Runtime/Run/DefaultRunner.php(125): Concrete\Core\Http\DefaultServer->handleRequest	
/var/www/html/concrete/src/Foundation/Runtime/DefaultRuntime.php(102): Concrete\Core\Foundation\Runtime\Run\DefaultRunner->run	
/var/www/html/concrete/dispatcher.php(45): Concrete\Core\Foundation\Runtime\DefaultRuntime->run	
/var/www/html/index.php(2): null->require

It seems as if the custom repository class I defined is not being recognized. I have tried uninstalling/reinstalling the package and playing around with file position and namespacing with no luck.

Help please!

I have not worked with Repository classes, but is it possible that when you call it the use statement isn’t there or is incorrect?