@Table is optional. @Entity is needed for annotating a POJO class as an entity, but the name attribute is not mandatory.
If you have a class
@Entity
class MyEntity {}
A table with name “MyEntity” will be created and the Entity name will be MyEntity. Your JPQL query would be:
select * from MyEntity
In JPQL you always use the Entity name and by default it is the class name.
if you have a class
@Entity(name="MyEntityName")
@Table(name="MyEntityTableName")
class MyEntity {}
then a table with name MyEntityTableName is created and the entity name is MyEntityName.
Your JPQL query would be :
select * from MyEntityName