JPA Transient示例
2018-02-23 14:51 更新
JPA教程 - JPA Transient示例
如果我们不想将属性保存到数据库,我们可以使用@Transient注释标记该字段。
例子
以下代码来自Professor.java。
package cn.w3cschool.common;
import java.util.Locale;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Transient;
@Entity
public class Professor {
@Id
private int id;
private String name;
private long salary;
@Transient
private String convertedName;
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;
convertedName = convertName(name);
}
public long getSalary() {
return salary;
}
public void setSalary(long salary) {
this.salary = salary;
}
public String getConvertedName() {
return convertedName;
}
public String toString() {
return "Employee " + " id: " + getId() + " name: " + getName() + " converted name: " + getConvertedName() + " salary: " + getSalary();
}
protected String convertName(String name) {
// Convert to upper case Canadian...
return name.toUpperCase(Locale.CANADA);
}
}
下面的代码来自PersonDaoImpl.java。
package cn.w3cschool.common;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import org.springframework.transaction.annotation.Transactional;
@Transactional
public class PersonDaoImpl {
public void test() {
Professor emp = new Professor();
emp.setId(1);
emp.setName("name");
emp.setSalary(12345);
em.persist(emp);
}
@PersistenceContext
private EntityManager em;
}
下载 Transient.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
以上内容是否对您有帮助:

免费 AI IDE


更多建议: