计算机系统应用教程网站

网站首页 > 技术文章 正文

JPA Transient示例 jpa truncate

btikc 2024-10-01 08:16:26 技术文章 14 ℃ 0 评论

如果我们不想将属性保存到数据库,我们可以使用@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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表