GET https://recette.junglebike.fr/api/customers

Query Metrics

4 Database Queries
4 Different statements
14.77 ms Query time
4 Invalid entities
1 Managed entities

Grouped Statements

Show all queries

Time Count Info
9.16 ms
(62.03%)
1
SELECT j0_.id AS id_0, j0_.username AS username_1, j0_.password AS password_2, j0_.roles AS roles_3, j0_.firstname AS firstname_4, j0_.lastname AS lastname_5, j0_.email AS email_6, j0_.is_verified AS is_verified_7, j0_.is_active AS is_active_8, j0_.phone_number AS phone_number_9, j0_.dialing_code AS dialing_code_10, j0_.created_at AS created_at_11, j0_.updated_at AS updated_at_12, j0_.created_by AS created_by_13, j0_.updated_by AS updated_by_14, j0_.siret AS siret_15, j0_.company_name AS company_name_16, j0_.addresses AS addresses_17, j0_.avatar_path AS avatar_path_18, COUNT(DISTINCT b1_.id) AS sclr_19, j0_.type AS type_20 FROM jb_user j0_ LEFT JOIN bike b1_ ON (b1_.owner_id = j0_.id) WHERE (j0_.roles::jsonb @> ?::jsonb = true) AND j0_.type IN ('user', 'customer', 'repairer', 'manager', 'fleet') GROUP BY j0_.id ORDER BY j0_.created_at DESC
Parameters:
[
  "["ROLE_CUSTOMER"]"
]
2.68 ms
(18.12%)
1
SELECT t0.id AS id_1, t0.username AS username_2, t0.password AS password_3, t0.roles AS roles_4, t0.firstname AS firstname_5, t0.lastname AS lastname_6, t0.email AS email_7, t0.is_verified AS is_verified_8, t0.is_active AS is_active_9, t0.phone_number AS phone_number_10, t0.dialing_code AS dialing_code_11, t0.created_at AS created_at_12, t0.updated_at AS updated_at_13, t0.created_by AS created_by_14, t0.updated_by AS updated_by_15, t0.siret AS siret_16, t0.company_name AS company_name_17, t0.addresses AS addresses_18, t0.avatar_path AS avatar_path_19, t0.type FROM jb_user t0 WHERE t0.email = ? AND t0.type IN ('user', 'customer', 'repairer', 'manager', 'fleet') LIMIT 1
Parameters:
[
  "jb@manager.local"
]
2.25 ms
(15.25%)
1
SELECT
    u.id,
    u.firstname,
    u.lastname,
    COALESCE(COUNT(a.id) FILTER (WHERE a.status IS DISTINCT FROM 'cancelled'), 0) AS visits,
    MAX(a.start_date) FILTER (WHERE a.start_date <= NOW()
        AND a.status IS DISTINCT FROM 'cancelled')          AS last_visit,
    MIN(a.start_date) FILTER (WHERE a.start_date >  NOW()
        AND a.status IS DISTINCT FROM 'cancelled')          AS next_visit
FROM jb_user AS u
         LEFT JOIN appointment AS a
                   ON a.customer_id = u.id
WHERE u.roles @> '["ROLE_CUSTOMER"]'::jsonb
GROUP BY u.id, u.firstname, u.lastname
ORDER BY visits DESC, last_visit DESC NULLS LAST
Parameters:
[]
0.68 ms
(4.60%)
1
SELECT DISTINCT addr->>'city' AS city
FROM jb_user u
     CROSS JOIN LATERAL jsonb_array_elements(u.addresses::jsonb) AS addr
WHERE COALESCE(addr->>'city','') <> ''   AND u.roles @> '["ROLE_CUSTOMER"]'::jsonb
ORDER BY city ASC
Parameters:
[]

Database Connections

Name Service
default doctrine.dbal.default_connection

Entity Managers

Name Service
default doctrine.orm.default_entity_manager

Second Level Cache

Second Level Cache is not enabled.

Managed Entities

default entity manager

Class Amount of managed objects
App\Entity\User 1

Entities Mapping

Class Mapping errors
App\Entity\User No errors.
App\Entity\Customer No errors.
App\Entity\Repairer No errors.
App\Entity\Manager No errors.
App\Entity\Fleet
  • The field App\Entity\Fleet#managedBikes is on the owning side of a bi-directional relationship, but the specified inversedBy association on the target-entity App\Entity\Bike#fleets does not contain the required 'mappedBy="managedBikes"' attribute.
App\Entity\ResetPassword No errors.
App\Entity\Appointment
  • The mappings App\Entity\Appointment#fleet and App\Entity\Fleet#appointments are inconsistent with each other.
App\Entity\FleetCompany
  • The mappings App\Entity\FleetCompany#bike and App\Entity\Bike#fleetCompanies are inconsistent with each other.
App\Entity\Bike
  • The field App\Entity\Bike#fleets is on the owning side of a bi-directional relationship, but the specified inversedBy association on the target-entity App\Entity\Fleet#managedBikes does not contain the required 'mappedBy="fleets"' attribute.
  • The association App\Entity\Bike#fleetCompanies refers to the inverse side field App\Entity\FleetCompany#bikes which does not exist.