当使用id字段的自动生成值时,我们可以选择生成策略。我们使用的一个常见策略是IDENTITY。
以下代码来自Professor.java。
package cn..common; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Professor { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private int id; private String name; private long salary; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public long getSalary() { return salary; } public void setSalary(long salary) { this.salary = salary; } public String toString() { return "Employee id: " + getId() + " name: " + getName() + " salary: " + getSalary(); } }
以下代码来自App.java。
package cn..common; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "applicationContext.xml"); PersonDaoImpl dao = (PersonDaoImpl) context.getBean("personDao"); dao.test(); context.close(); Helper.checkData(); } }
下面的代码来自PersonDaoImpl.java。
package cn..common; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import org.springframework.transaction.annotation.Transactional; @Transactional public class PersonDaoImpl { public void test() { Professor emp = new Professor(); emp.setName("name"); emp.setSalary(12345); em.persist(emp); } @PersistenceContext private EntityManager em; }下载 ID_GenerationType.IDENTITY.zip
这里是数据库表转储。
Table Name: PROFESSOR Row: Column Name: ID, Column Type: INTEGER: Column Value: 1 Column Name: NAME, Column Type: VARCHAR: Column Value: name Column Name: SALARY, Column Type: BIGINT: Column Value: 12345
JPA教程 -JPA一对多非类型化映射示例以下代码表示非类型的java.util.Map的目标实体类。@OneToMany(targetEntity=Employee.class,...
JPA教程 -JPA持久关系级联示例以下代码显示级联持久操作。例子下面的代码来自PersonDaoImpl.java。package cn..common;import ja...
JPA教程 - JPA 类型化查询示例以下代码创建了一个类型化的查询。TypedQuery可以有通用参数。TypedQueryProfessor query = em.cre...