JPA中如何指定实体类与数据库表之间的映射关系?

在JPA中可以通过@Table、@Column和@Id注解指定实体类与数据库表之间的映射关系。

@Table:指定实体类映射的数据库表名。

@Entity  
@Table(name = "t_user")  
public class User { ... }

@Column:指定实体类属性映射的数据库表字段名。

@Entity  
public class User {  
    @Id
    @Column(name = "id")
    private int id;

    @Column(name = "name")
    private String name;
}

@Id:指定实体类的主键属性。

@Entity  
public class User {  
    @Id 
    @Column(name = "id")
    private int id;
} 

如果实体属性名称与数据库表字段名相同,也可以省略@Column注解。

@Entity  
public class User { 
    @Id
    private int id;  
    private String name; 
}

代码示例:

@Entity  
@Table(name = "t_user")  
public class User {

    @Id
    @Column(name = "id")
    private int id;

    @Column(name = "name") 
    private String name;

    @Column(name = "age")
    private int age;
}

在上例中,User实体类映射到t_user数据库表,id属性映射到id字段,name属性映射到name字段,age属性映射到age字段。
理解对象关系映射注解,有助于我们设计高质量的ORM模型。熟练使用@Table、@Column和@Id注解配置实体类与数据库表的映射关系,可以实现对象-关系的自动映射,简化持久化层的开发,提高应用的开发效率。