Аннотация @Table - определение таблицы базы данных.

@Table — аннотирование используется для указания сопоставления между именем сущности (Entity класса) и именем таблицы базы данных.

Спецификация JPA определяет правила для неявного определения имени таблицы (table). Правило неявного именования состоит в том, что имя таблицы базы данных совпадает с именем класса, аннотированного как @Entity. Если это неявное правило именования не удовлетворяет вашим требованиям, вы можете явно указать Hibernate (и другим провайдерам) имя таблицы базы данных, которое будет использоваться явно. Для этого, чтобы явно указать имя таблицы, с которой будет ассоциирован Entity класс и определить дополнительную информацию по таблице необходимо использовать аннотацию javax.persistence.Table.

Рассмотрим использование аннотации @Table на примере класса, используемого для хранения данных о станах — Country:

package info.deskbook.hibernate.mapping.annotation;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="COUNTRY")
public class Country implements Serializable {
	
	private static final long serialVersionUID = 1L;
	
	@Id
	private Long id;
	
	private String fullName;
	private String shortName;
	
	public Country() {
	}

	/* Определение методов класса
	 * не приводится для краткости */
}