java - 我们是否需要在 Spring Boot 中为每个表编写实体类?
问题描述
我有以下要求:
修改练习 1 的 Spring boot 应用程序 MovieMax 以使用 Spring Data JPA,以便将数据持久化在 MySQL DB 中。
从剧院表中获取剧院详细信息,从电影表中获取电影详细信息。
预订电影应更新 theatremovieshow 表和预订表中的相应详细信息
以下脚本可用于创建表:
创建表用户(用户ID varchar(8)主键,用户名varchar(25),密码varchar(10),emailid varchar(30),电话int);
创建表剧院(剧院varchar(8)主键,剧院名varchar(30),座位可用int(3),城市varchar(25));
创建表movie(movieid varchar(8)主键,moviename varchar(40),语言varchar(15),类别varchar(20),islive boolean);
创建表 Theatermovieshow( showid varchar(8) 主键,
Theaterid varchar(8) 引用了 theatre(theatrid),
movieid varchar(8) 引用电影(movieid),
showtime varchar(8),
开始日期,
结束日期,
票价双倍(6,2));
创建表 booking(bookingid int(5), userid varchar(8) 引用 user(userid),
showid varchar(8) 引用 theatremovieshow(showid),
noofseats int,
支付双倍(8,2),
显示日期,
预订日期);
确认:
执行时,应从数据库中获取所需的详细信息。
验证预订详细信息是否保留在相应的表中。
我需要为每个表编写实体类吗?我正在使用弹簧引导
解决方案
您不需要为每个表创建类。您可以使用本机查询。引用https://stackoverflow.com/a/50956683/1039555的答案:-
使用特定查询(本机查询)在存储库类中创建方法:
@Query(value="select * from emp", nativeQuery=true) Object getAllFromEmp();
将此方法保留在存储库接口中并从服务类中调用它
或者您可以使用
EntityManager
如下对象Query q = entityManager.createNativeQuery("SELECT * FROM emp e"); List<Object[]> empObject= q.getResultList();
对于更新,请使用类似executeUpdate()
.
推荐阅读
- microservices - 在 Cosmos DB 中嵌入来自另一个文档的数据
- regex - 如何使用 2 个正则表达式和一个返回值?
- python - Python按另一个列表排序列表,但排序的是日期类型
- firebase - fireauth 检测用户创建
- apache - 我的 Apache conf 是否在永无止境的循环中,我该如何改进?
- laravel - Laravel Eloquent:如何使用 Pivot 获得第三个表关系
- assembly - MASM - 进入权限级别 0
- c - 下面的程序可以工作,但会出现一个对话框,提示 filename.exe 已停止工作。为什么这样?
- javascript - 反应式表单正确地将表单值转换为模型对象作为列表
- python - 熊猫:“替换”不适用于单元格值“5-6”