function inserirRastreador()
{
    for ($i = 0; $i < 50000; $i++) {
        $ratreador = new Rastreador();
        $ratreador->setSerial(rand());
        $ratreador->setNome(rand());
        $ratreador->setPublico(false);
        echo ServiceLocator::getRastreadorService()->create($ratreador) . "/" . $ratreador->getId() . ", ";
    }
    echo "<br> I = {$i}";
}
 public function readByCriteria(PDO $conexao, $criteria = null, $offset = -1, $limit = -1)
 {
     $entityArray = array();
     if ($conexao != null) {
         $sql = "select * from usuario_rastreador where 1=1";
         if (is_array($criteria) && count($criteria) > 0) {
             if (array_key_exists(UsuarioRastreadorCriteria::ID_EQ, $criteria)) {
                 $aux = $criteria[UsuarioRastreadorCriteria::ID_EQ];
                 if ($aux != null && $aux > 0) {
                     $sql .= " and id = {$aux}";
                 }
             }
             if (array_key_exists(UsuarioRastreadorCriteria::USUARIO_FK_EQ, $criteria)) {
                 $aux = $criteria[UsuarioRastreadorCriteria::USUARIO_FK_EQ];
                 if ($aux != null && $aux > 0) {
                     $sql .= " and usuario_fk = {$aux}";
                 }
             }
             if (array_key_exists(UsuarioRastreadorCriteria::RASTREADOR_FK_EQ, $criteria)) {
                 $aux = $criteria[UsuarioRastreadorCriteria::RASTREADOR_FK_EQ];
                 if ($aux != null && $aux > 0) {
                     $sql .= " and rastreador_fk = {$aux}";
                 }
             }
         }
         if ($limit > 0) {
             $sql .= " limit {$limit}";
         }
         if ($offset > 0) {
             $sql .= " offset {$offset}";
         }
         try {
             $ps = $conexao->prepare($sql);
             $ps->execute();
             while ($linha = $ps->fetch(PDO::FETCH_ASSOC)) {
                 $entity = new UsuarioRastreador();
                 $entity->setId($linha['id']);
                 $usuario = new Usuario();
                 $usuario->setId($linha['usuario_fk']);
                 $entity->setUsuario($usuario);
                 $rastreador = new Rastreador();
                 $rastreador->setId($linha['rastreador_fk']);
                 $entity->setRastreador($rastreador);
                 $entityArray[] = $entity;
             }
             $ps = null;
         } catch (PDOException $e) {
             throw $e;
         }
     }
     return $entityArray;
 }
function testeUpdate()
{
    $entity = new Coordenada();
    $entity->setId(15);
    $entity->setLatitude(25);
    $entity->setLongitude(25);
    $entity->setDataHora(date('Y-m-d H-i-s'));
    $entity->setHdop(1.655);
    $rastreador = new Rastreador();
    $rastreador->setId(3);
    $entity->setRastreador($rastreador);
    echo "Resultado: " . ServiceLocator::getCoordenadaService()->update($entity);
}
function testeUpdate()
{
    $entity = new Rastreador();
    $entity->setId(5);
    $entity->setSerial("PQ406");
    $entity->setNome("Rastreador teste");
    $entity->setPublico(true);
    echo "Resultado: " . ServiceLocator::getRastreadorService()->update($entity);
}
function compararUsuarioRastreador()
{
    $usuRas = new UsuarioRastreador();
    $usuRas->setId(14);
    $usu = new Usuario();
    $usu->setId(2);
    $usu->setLogin("Creuza");
    $usu->setNome("Creuza");
    $usu->setSenha("123123");
    $usuRas->setUsuario($usu);
    $ras = new Rastreador();
    $ras->setId(5);
    $ras->setNome("Rastreador 2");
    $ras->setPublico(false);
    $ras->setSerial("PQ123");
    $ras->setToken("TK148");
    $usuRas->setRastreador($ras);
    $usuRas2 = new UsuarioRastreador();
    $usuRas2->setId(14);
    $usu2 = new Usuario();
    $usu2->setId(2);
    $usu2->setLogin("Creuza");
    $usu2->setNome("Creuza");
    $usu2->setSenha("123123");
    $usuRas2->setUsuario($usu2);
    $ras2 = new Rastreador();
    $ras2->setId(5);
    $ras2->setNome("Rastreador 2");
    $ras2->setPublico(false);
    $ras2->setSerial("PQ123");
    $ras2->setToken("TK148");
    $usuRas2->setRastreador($ras2);
    var_dump($usuRas->comparar($usuRas2));
    echo "<br><br>";
    var_dump($usuRas == $usuRas2);
}
 public function readById(PDO $conexao, $id)
 {
     $entity = null;
     if ($conexao != null && $id > 0) {
         try {
             $sql = "select * from coordenada where id = ?";
             $ps = $conexao->prepare($sql);
             $ps->bindParam(1, $id, PDO::PARAM_INT);
             $ps->execute();
             if ($linha = $ps->fetch(PDO::FETCH_ASSOC)) {
                 $entity = new Coordenada();
                 $entity->setId($linha['id']);
                 $entity->setLatitude($linha['latitude']);
                 $entity->setLongitude($linha['longitude']);
                 $entity->setDataHora($linha['data_hora']);
                 $entity->setHdop($linha['hdop']);
                 $rastreador = new Rastreador();
                 $rastreador->setId($linha['rastreador_fk']);
                 $entity->setRastreador($rastreador);
             }
             $ps = null;
         } catch (PDOException $e) {
             throw $e;
         }
     }
     return $entity;
 }
 public function readById(PDO $conexao, $id)
 {
     $rastreador = null;
     if ($conexao != null && $id > 0) {
         try {
             $sql = "select * from rastreador where id = ?";
             $ps = $conexao->prepare($sql);
             $ps->bindParam(1, $id, PDO::PARAM_INT);
             $ps->execute();
             if ($linha = $ps->fetch(PDO::FETCH_ASSOC)) {
                 $rastreador = new Rastreador();
                 $rastreador->setId($linha['id']);
                 $rastreador->setSerial($linha['serial']);
                 $rastreador->setToken($linha['token']);
                 $rastreador->setNome($linha['nome']);
                 $rastreador->setPublico($linha['publico']);
             }
             $ps = null;
         } catch (PDOException $e) {
             throw $e;
         }
     }
     return $rastreador;
 }
<?php

include_once realpath(__DIR__) . '/../model/entity/Rastreador.php';
$a = new Rastreador();
$a->setId(20);
$a->setNome("Teste");
$a->setPublico(1);
$a->setSerial("ghghg8989");
$a->setToken("TKojf94");
$a->setCoordenadaArray(["ola" => 123, "test" => 222]);
$b = new Rastreador();
$b->setId(20);
$b->setNome("Teste");
$b->setPublico(1);
$b->setSerial("ghghg8989");
$b->setToken("TKojf94");
echo $a->__toString() == $b->__toString();