广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州什么是JPA Lob延迟加载?_北大青鸟IT学校

作者:邓华发布时间:2021-05-05分类:Java技术浏览:879


导读:大家知道什么是JPA Lob延迟加载吗?接下来我们一起跟着惠州北大青鸟老师来学习Java中的JPA Lob延迟加载知识。

大家知道什么是JPA Lob延迟加载吗?接下来我们一起跟着惠州北大青鸟老师来学习Java中的JPA Lob延迟加载知识。

我们可以通过仅提取频繁访问的数据来优化检索实体时的性能。如果需要,可以提取剩余的数据。

当使用@Lob注释将字节数组或字符数组字段映射到数据库时,我们可以设置是否对该字段执行延迟加载。

延迟加载使应用程序运行速度更快,因为JPA只在加载字节数组或字符数组时才使用它们。

基本映射的获取类型可以配置为通过在相应的@Basic注释中指定fetch元素来延迟或急切加载。

FetchType枚举类型定义此元素的值,可以是EAGER或LAZY。

 @Basic(fetch=LAZY)
 @Lob @Column(name="PIC")  private byte[] picture;

实例

下面的代码来自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;

@Transactionalpublic 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;
}

以下代码来自Professor.java。

package cn.w3cschool.common;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import static javax.persistence.FetchType.LAZY;
@Entitypublic class Professor {
 @Id  private int id;  private String name;  private long salary;
 
 @Basic(fetch=LAZY)
 @Lob @Column(name="PIC")  private byte[] picture;  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 byte[] getPicture() {
     return picture;
 }  public void setPicture(byte[] picture) {
     this.picture = picture;
 }  public String toString() {
     return "Employee id: " + getId() + " name: " + getName() +
     " salary: " + getSalary() + " pic: " + new String(getPicture());
 }
}

以下是数据库转储。

Table Name: PROFESSOR
Row:
   Column Name: ID,
   Column Type: INTEGER:
   Column Value: 1

   Column Name: NAME,
   Column Type: VARCHAR:
   Column Value: name

   Column Name: PIC,
   Column Type: BLOB:
   Column Value: null

   Column Name: SALARY,
   Column Type: BIGINT:
   Column Value: 12345

更多Java资讯关注网站动态,或者来惠州北大青鸟新方舟校区了解一下。

java5.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表