This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
While @Entity takes an optional name, it isn't a table name. It is for the case where you want to refer to the entity using a different name in JP QL queries. @Table's name attribute is the actual table name.
@Table's name is used a lot. @Entitiy's name is much rarer. It is useful if you have two @Entity classes' with the same name and you need a way to differentiate them when running queries.