# Doctrine ORM Basics (Symfony) > Entities, annotations, EntityManager, repositories, DQL, QueryBuilder, relationships - 25 interview questions - Junior - [Interview Questions: Symfony](https://sharpskill.dev/en/technologies/symfony/interview-questions.md) ## 1. What is Doctrine ORM in the context of Symfony? **Answer** Doctrine ORM is an Object-Relational Mapper that allows manipulating database data through PHP objects. It abstracts SQL queries by providing an object layer, making code more maintainable and portable across different database management systems. It's the default recommended ORM with Symfony. ## 2. Which PHP 8 attribute should be used to declare a class as a Doctrine entity? **Answer** The #[ORM\Entity] attribute is used to indicate to Doctrine that a PHP class is an entity mapped to a database table. This attribute replaces comment-based annotations and is part of the Doctrine\ORM\Mapping namespace. It can be combined with repositoryClass to specify a custom repository. ## 3. How to define an auto-incremented column as a primary key in a Doctrine entity? **Answer** To define an auto-incremented primary key, two attributes must be combined: #[ORM\Id] to mark the property as identifier, and #[ORM\GeneratedValue] to indicate the value will be automatically generated by the database. The default strategy is AUTO, which selects the appropriate method based on the DBMS. ## 22 more questions available - What is the difference between persist() and flush() in EntityManager? - Which attribute should be used to map a string property to a VARCHAR column in Doctrine? Sign up for free: https://sharpskill.dev/en/login ## Other Symfony interview topics - [Modern PHP (8.1+)](https://sharpskill.dev/en/technologies/symfony/interview-questions/php-modern-features.md): 20 questions, Junior - [Symfony Basics](https://sharpskill.dev/en/technologies/symfony/interview-questions/symfony-basics.md): 25 questions, Junior - [Routing & Controllers](https://sharpskill.dev/en/technologies/symfony/interview-questions/routing-controllers.md): 20 questions, Junior - [Twig & Templates](https://sharpskill.dev/en/technologies/symfony/interview-questions/twig-templates.md): 20 questions, Junior - [Symfony Forms](https://sharpskill.dev/en/technologies/symfony/interview-questions/forms.md): 22 questions, Junior - [Data Validation](https://sharpskill.dev/en/technologies/symfony/interview-questions/validation.md): 18 questions, Junior - [Dependency Injection & Services](https://sharpskill.dev/en/technologies/symfony/interview-questions/dependency-injection.md): 24 questions, Mid-Level - [Security & Authentication](https://sharpskill.dev/en/technologies/symfony/interview-questions/security-authentication.md): 26 questions, Mid-Level - [Doctrine Advanced](https://sharpskill.dev/en/technologies/symfony/interview-questions/doctrine-advanced.md): 24 questions, Mid-Level - [API Platform](https://sharpskill.dev/en/technologies/symfony/interview-questions/api-platform.md): 22 questions, Mid-Level - [Serializer Component](https://sharpskill.dev/en/technologies/symfony/interview-questions/serializer.md): 20 questions, Mid-Level - [Events & Event Subscribers](https://sharpskill.dev/en/technologies/symfony/interview-questions/events-subscribers.md): 20 questions, Mid-Level - [Console & Commands](https://sharpskill.dev/en/technologies/symfony/interview-questions/console-commands.md): 18 questions, Mid-Level - [Messenger Component](https://sharpskill.dev/en/technologies/symfony/interview-questions/messenger.md): 22 questions, Mid-Level - [HTTP Client](https://sharpskill.dev/en/technologies/symfony/interview-questions/http-client.md): 18 questions, Mid-Level - [Cache & Performance](https://sharpskill.dev/en/technologies/symfony/interview-questions/cache.md): 20 questions, Mid-Level - [Workflow Component](https://sharpskill.dev/en/technologies/symfony/interview-questions/workflow.md): 18 questions, Mid-Level - [Testing Symfony](https://sharpskill.dev/en/technologies/symfony/interview-questions/testing.md): 22 questions, Mid-Level - [Mailer Component](https://sharpskill.dev/en/technologies/symfony/interview-questions/mailer.md): 16 questions, Mid-Level - [Translations & i18n](https://sharpskill.dev/en/technologies/symfony/interview-questions/translations.md): 16 questions, Mid-Level - [EasyAdmin Bundle](https://sharpskill.dev/en/technologies/symfony/interview-questions/easyadmin.md): 18 questions, Mid-Level - [Symfony Architecture](https://sharpskill.dev/en/technologies/symfony/interview-questions/architecture-patterns.md): 24 questions, Senior - [Performance & Optimization](https://sharpskill.dev/en/technologies/symfony/interview-questions/performance-optimization.md): 22 questions, Senior - [Security Advanced](https://sharpskill.dev/en/technologies/symfony/interview-questions/security-advanced.md): 22 questions, Senior - [Custom Bundles](https://sharpskill.dev/en/technologies/symfony/interview-questions/custom-bundles.md): 20 questions, Senior - [Microservices with Symfony](https://sharpskill.dev/en/technologies/symfony/interview-questions/microservices.md): 22 questions, Senior - [Real-time & WebSockets](https://sharpskill.dev/en/technologies/symfony/interview-questions/real-time.md): 18 questions, Senior - [Deployment & DevOps](https://sharpskill.dev/en/technologies/symfony/interview-questions/deployment-devops.md): 20 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/en/technologies/symfony/interview-questions/doctrine-orm-basics