Hibernate - Anotação @Column
A anotação  é usada para realizar o mapeamento do campo da entidade com uma coluna do banco de dados.@Column
Para atributos básicos segundo a especificação JPA a anotação  pode ser omitida. Nesse caso, a regra de nomeação é que o nome da coluna do banco de dados tenha o mesmo nome da propriedade da classe. Caso essa regra de nomeação não atenda aos seus requisitos, você pode explicitamente dizer ao Hibernate o nome da coluna que deseja utilizar vide exemplo @Column, ou até mesmo utilizar outras estratégias de nomeação, mas caso nenhuma das regras existentes de nomeação atenda seus requisitos, é possível criar uma nova regra, a qual veremos em outro post.@Column(name = "NOME")
A anotação  além de nos permitir definir o nome do mapeamento da coluna do banco de dados, também disponibiliza as seguintes propriedades de configuração, onde podemos aplicar ajustes finos no mapeamento de colunas.@Column
Propriedade  | 
Descrição  | 
name  | 
Nome da coluna  | 
nullable  | 
Se a coluna do banco de dados pode receber valores nulos  | 
unique  | 
Se a coluna é uma chave única  | 
length  | 
O comprimento da coluna  | 
precision  | 
Precisão decimal da coluna  | 
scale  | 
Escala para uma coluna do tipo decimal  | 
insertable  | 
Se a coluna deve ser incluída nas instruções de INSERT  | 
updatable  | 
Se a coluna deve ser incluída nas instruções de UPDATE  | 
table  | 
O nome da tabela que contém a coluna  | 
columnDefinition  | 
O fragmento SQL que é usado ao gerar o DDL para a coluna  | 
Exemplo
Dado o seguinte DDL da tabela de Contato:
create table Contato (
   id integer not null primary key auto_increment,
   nome varchar(30) not null,
   sobrenome varchar(60) not null,
   descricao varchar(255),
   favorito boolean,
   website varchar(255),
   primary key (id),
   constraint contato_nome_unique UNIQUE (nome)
)
Temos a seguinte entidade mapeada, utilizando algumas das propriedades apresentadas anteriormente:
@Entity(name = "Contato")
public static class Contato {
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private Integer id;
   private Nome nome;
   @Column(name = "descricao")
   private String resumo;
   private URL website;
   private boolean favorito;
}
@Embeddable
public class Nome {
   @Column(nullable = false, length = 30, unique = true, updatable = false)
   private String nome;
   @Column(nullable = false, length = 60, updatable = false)
   private String sobrenome;
}