第二百三十一节 JPA教程 - JPA Transient示例、 JPA ID注释示例

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;
@Entitypublic class Professor {@Idprivate 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);}@PersistenceContextprivate EntityManager em;
}

下载 Transient.zip

以下是数据库转储。

Table Name: PROFESSORRow:Column Name: ID,Column Type: INTEGER:Column Value: 1Column Name: NAME,Column Type: VARCHAR:Column Value: nameColumn Name: SALARY,Column Type: BIGINT:Column Value: 12345

JPA教程 - JPA ID注释示例

来自JPA的@Id注释用于将Java字段标记为数据库表主键列。

public class Person{
@Id
private long id;
...

上面的代码将来自Person类的id字段作为数据库中的表person中的主键列。

例子

下面的代码来自Person.java。

package cn.w3cschool.common;import javax.persistence.Entity;
import javax.persistence.Id;@Entity
public class Person {@Idprivate long id;private String name;private String surname;public Person() {}public Person(String name, String surname) {this.name = name;this.surname = surname;}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSurname() {return surname;}public void setSurname(String surname) {this.surname = surname;}@Overridepublic String toString() {return "Person [id=" + id + ", name=" + name + ", surname=" + surname + "]";}
}

下面的代码来自PersonDaoImpl.java。

package cn.w3cschool.common;import java.util.List;import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;import org.springframework.transaction.annotation.Transactional;@Transactional
public class PersonDaoImpl {@PersistenceContextprivate EntityManager em;public Long save(Person person) {em.persist(person);return person.getId();}public List<Person>getAll() {return em.createQuery("SELECT p FROM Person p", Person.class).getResultList();}}

以下代码来自App.java。

package cn.w3cschool.common;import java.util.List;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");Person p1 = new Person("XML", "HTML");p1.setId(1L);Person p2 = new Person("Java", "SQL");p2.setId(2L);dao.save(p1);dao.save(p2);List<Person> persons = dao.getAll();for (Person person : persons) {System.out.println(person);}context.close();Helper.checkData();}
}

上面的代码生成以下结果。

以下是数据库表转储。

Table Name: PERSONRow:Column Name: ID,Column Type: BIGINT:Column Value: 1Column Name: NAME,Column Type: VARCHAR:Column Value: XMLColumn Name: SURNAME,Column Type: VARCHAR:Column Value: HTMLRow:Column Name: ID,Column Type: BIGINT:Column Value: 2Column Name: NAME,Column Type: VARCHAR:Column Value: JavaColumn Name: SURNAME,Column Type: VARCHAR:Column Value: SQL


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1534358.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

面试官:说说你对vue的mixin的理解,有什么应用场景?

一、mixin是什么 Mixin是面向对象程序设计语言中的类&#xff0c;提供了方法的实现。其他类可以访问mixin类的方法而不必成为其子类 Mixin类通常作为功能模块使用&#xff0c;在需要该功能时“混入”&#xff0c;有利于代码复用又避免了多继承的复杂 Vue中的mixin 先来看一…

Vue 中常用的基础指令

一. 什么是 Vue 指令 指令的定义和作用 指令是通过 Vue 实例的directives选项进行定义的。在指令的定义中&#xff0c;需要提供一个bind函数&#xff0c;它在指令第一次绑定到元素时被调用&#xff0c;可以执行一些初始化的操作。还可以提供update函数&#xff0c;它在指令所…

CCF201909_1

题解&#xff1a; #include<bits/stdc.h> using namespace std;struct tree {int id;int apple;int cut 0; };bool cmp(tree a, tree b) {if (a.cut b.cut){return a.id < b.id;}return a.cut > b.cut; }int main() {int n, m;cin >> n >> m;tree t…

成本估算模型

答案&#xff1a;B 知识点&#xff1a; COCOMO II模型 应用组装模型 对象点 早期设计阶段模型 功能点&#xff0c;代码行 体系结构阶段模型 代码行 解析&#xff1a; 基本COCOMO计算成本看代码量 中级COCOMO看代码量&#xff0c;硬件&#xff0c;人员等因素 详细CO…

2024逼自己做AI副业!月入2w+!

最近&#xff0c;身边朋友都在为赚钱发愁&#xff0c;加上大环境不行&#xff0c;心里更慌了。 对大部分人来说&#xff0c;工资只能缓解**“没钱”的****恐惧**&#xff0c;却不能改变“没钱”的事实。 但是&#xff0c;有这么一群人&#xff0c;踩中了**“AI”风口&#xf…

Maven从入门到精通(二)

一、什么是pom.xml pom.xml是Maven项目的核心配置文件&#xff0c;它是 项目对象模型 - Project Object Model&#xff08;POM&#xff09;的缩写。POM定义了项目的所有属性&#xff0c;包括项目的名称、版本、依赖关系、构建配置等。使用pom.xml&#xff0c;我们可以轻松地管…

安全装备检测系统源码分享

安全装备检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

c#如何读取Modbus中Slave和Poll的值

虚拟串口 Modbus Slave 右击设置slave定义 设置好地址后&#xff0c;设置连接。点击Connection–选择Connect Modbus Poll 右击选择设置定义 设置的内容要和slave一致 设置连接&#xff0c;点击Connection—选择Connect Poll和Slave连接之后&#xff0c;可以获取slave的值。我…

荣誉上榜!亲笔签入选2024年度重庆市网络安全优秀产品和技术名单

近日&#xff0c;在由重庆市委网信办与市经济信息委联合发起的网络安全优秀产品及技术评选活动中&#xff0c;亲笔签数字科技“数字笔迹可信身份认证系统”凭借其领先的安全隐私保护能力&#xff0c;以及在数字经济交易场景中广泛的应用潜力&#xff0c;成功入选《2024年重庆市…

探索代码的守护者:Pyflakes,Python代码的隐形盾牌

文章目录 探索代码的守护者&#xff1a;Pyflakes&#xff0c;Python代码的隐形盾牌第一部分&#xff1a;背景介绍第二部分&#xff1a;Pyflakes是什么&#xff1f;第三部分&#xff1a;如何安装Pyflakes&#xff1f;第四部分&#xff1a;Pyflakes的简单使用方法第五部分&#x…

一步步教你利用大模型开发个性化AI应用,告别‘人工智障’!

为了回答这个问题&#xff0c;我用说人话的方式拿gpts创建了一个“我”&#xff0c;然后让她来回答这个问题。&#xff08;确认过眼神&#xff0c;我是懂套娃的&#xff09; 接下来我会先展示下整个定制过程&#xff1b;然后我们一起看一下她能把题答到什么程度&#xff1b;最后…

AI生成头像表情包,一次十分钟,就能实现月入过万的玩法,无脑操作

今天给大家带来的项目是AI生成表情包和头像&#xff0c;这个项目对于我们做ip来说是真心不错&#xff0c;就比如我这个头像。 为什么说每天只需要10分钟呢&#xff0c;那么我们继续往下看。 "项目介绍 这个项目的核心其实就是使用AI生成表情包或者说生成头像&#xff0c…

828华为云征文|华为云 Flexus云服务器X实例-选购到创建宝塔

文章目录 1.华为云 Flexus云服务器X实例介绍1.1 产品优势1.2应用场景概览 2.选择配置与购买2.1 计费模式与区域选择2.2 实例规格2.3 镜像2.4 存储与网络2.5 弹性公网IP2.6 云服务器名称与登录凭证2.7 云备份 3.使用CloudShell 登录Flexus云服务器X实例3.1 CloudShell 4.创建宝塔…

【SSRF漏洞】——http协议常见绕过

改变的确很难&#xff0c;但结果值得冒险 本文如有错误之处&#xff0c;还请各位师傅指正 一.ssrf概述 SSRF全称为Server-side Request Fogery,中文含义服务器端请求伪造 SSRF是一种由攻击者构造形成由目标服务端发起请求的一个安全漏洞。一般情况下&#xff0c;SSRF攻击的目标…

AI+教育|拥抱AI智能科技,让课堂更生动高效

AI在教育领域的应用正逐渐成为现实&#xff0c;提供互动性强的学习体验&#xff0c;正在改变传统教育模式。AI不仅改变了传统的教学模式&#xff0c;还为教育提供了更多的可能性和解决方案。从个性化学习体验到自动化管理任务&#xff0c;AI正在全方位提升教育质量和效率。随着…

运行PaddleOCR报错:requests.exceptions.SSLError: HTTPSconnectionPool……

文章目录 问题描述解决方法 问题描述 在运行以下代码时报错&#xff1a; ocr PaddleOCR(lang"en")解决方法 打开cmd&#xff0c;输入以下命令&#xff0c;查找Python解释器所在路径。 找到 Lib\site-packages\paddleocr\ppocr\utils\network.py&#xff0c;将代码…

docker-compose elasticsearch 集群搭建(用户登录+https访问)

文章目录 前言docker-compose elasticsearch 集群搭建(用户登录https访问)1. 效果2. 制作elasticsearch 分词器镜像2.1. 拉取elasticsearch:7.11.12.2. 制作特定版本镜像 3. docker-compose elasticsearch 集群制作4. es账户密码初始化 前言 如果您觉得有用的话&#xff0c;记…

小红书治愈插画副业,猛猛涨粉上万+,每天只用5分钟

在这个数字化时代&#xff0c;AI技术正以前所未有的速度改变着我们的生活和工作。特别是在内容创作领域&#xff0c;AI的运用已经催生了一种全新的创作模式。一幅幅温馨可爱的治愈插画如同清流&#xff0c;不仅契合当下年轻人生活的状态&#xff0c;更成为许多人表达生活态度、…

【鸿蒙】HarmonyOS NEXT星河入门到实战8-自定义组件-组件通信

目录 1、模块化语法 1.1 模块化基本认知 1.2 默认导出和导入 1.2.1 在ets下新建tools目录 1.2.2 在tools下新建moduls.ets文件 1.2.3 index.ets 1.3 按需导出和导入 1.4 全部导入 2、自定义组件 -基础 2.1 自定义组件 - 基本使用 2.2 自定义组件 -通用样式 2.2.1 et…

ceph简介

ceph存储简要概述&#xff1a; 通过将文件分解成固定大小对象&#xff0c;然后存放于pool中&#xff0c;每个pool中 可包含多个pg&#xff0c;每个pg中又可包含多个osd 通过crush算法 最终数据落盘到osd中去。 一、ceph 删除osd 步骤1 修改osd数据操作权重值 ceph osd crush r…