考虑我们将使用以下EMPLOYEE表来存储我们的对象:
create table EMPLOYEE (
id INT NOT NULL auto_increment,
first_name VARCHAR(20) default NULL,
last_name VARCHAR(20) default NULL,
salary INT default NULL,
PRIMARY KEY (id)
);
以下是带有注释的Employee类与具有已定义的EMPLOYEE表的地图对象的映射:
import javax.persistence.*;
@Entity
@Table(name = "EMPLOYEE")
public class Employee {
@Id @GeneratedValue
@Column(name = "id")
private int id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "salary")
private int salary;
public Employee() {}
public int getId() {
return id;
}
public void setId( int id ) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName( String first_name ) {
this.firstName = first_name;
}
public String getLastName() {
return lastName;
}
public void setLastName( String last_name ) {
this.lastName = last_name;
}
public int getSalary() {
return salary;
}
public void setSalary( int salary ) {
this.salary = salary;
}
}
我的问题是“如果我以后想要在我的数据库中添加新列,是否需要修改此代码?”
答案 0 :(得分:1)
如果您想更改数据库,可以,但请记住更新您的应用程序实体类。您可以手动执行此操作,也可以通过添加以下内容让Hibernate自动执行此操作:
<property name="hibernate.hbm2ddl.auto">update</property>
到你的Hibernate配置文件。如果您使用自动版,只需更改Entity类,Hibernate将自动更新DB。
答案 1 :(得分:0)
将新列添加到数据库表时,应用程序仍可正常运行。 但是当你需要在应用程序中使用这个新列时,你应该通过添加新字段并映射值来更新实体类。
@Column(name = "new_column_name")
private int newFieldName;