V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Nosub  ›  全部回复第 6 页 / 共 7 页
回复总数  140
1  2  3  4  5  6  7  
厉害了。
给 OP 提供一个解决方案,比如有个文章表,和一个 User 表,我要查询所有文章列表,文章列表又要返回这篇文章的作者信息,我这里写了一个投影和一个 DTO ,用 nativeQuery 方式查询。

@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserInfoDto {
private Long id;
private String name;
private String avatar;
}

public interface PostInfo {
long getCreateTime();
long getModifiedTime();
Long getId();
String getTitle();
String getSummary();
String getContent();
@Value("#{new com.momo.xxx.dto.UserInfoDto(target.user_id, target.user_name, target.user_avatar)}")
UserInfoDto getAuthor();
}


user_info 表示用户表,Post 表示文章列表。

@Query(value = "SELECT p.id,user_info.id AS user_id, user_info.name AS user_name, user_info.avatar AS user_avatar,p.title,p.summary,p.CONTENT,p.state,p.create_time AS createTime,p.modified_time AS modifiedTime FROM Post p JOIN user_info ON user_info.id=p.author_id WHERE p.is_delete = FALSE AND p.STATE = 5 ORDER BY p.ID DESC",
nativeQuery = true)
Page<PostInfo> findAllPublishedPostsNative(Pageable pageable);

如果直接用 Spring Data Jpa 查询 10 条数据大概要 4192ms ,可能更慢,用 Native 方式可能只要 130ms ,这个数据只是我的一个测试数据;
@nothingistrue 你可以看看《 Java Persistence with Hibernate Second Edition 》,数据来自这本书,作者你也可以看看。
@nothingistrue Hibernate 的开发团队写的,瞎在哪儿。
还有个问题,很多人没有搞清楚 JPA ,Hibernate 和 Spring Data JPA 的关系,建议花点时间搞清楚这些概念,OP 说的是 Spring Data JPA 速度慢。
@UBcai 投影 Projections 和 DTO 了解一下,如果遇到问题只会吐槽,肯定还是无法掌握 Hibernate 的。
了解一下,EntityGraph
厉害了,很不错。
115 天前
回复了 dc2002007 创建的主题 Java 为何不选 Hibernate,非要 MyBatis?
不用思考,hibernate 成本太高,一般人掌握不了,你要一个面向过程的程序员去写面向对象的代码,就算用 Java 也可以写出 c 的既视感。
@hez2010 恰恰相反,vscode 和新版 QQ 等的成功,说明了人家大厂的客户端的开发已经越过了 c#生态,要说桌面客户端,第一个想到绝对是 c++,但是无可奈何,现代会 c++或是说想学 c++的人越来越少,所以养成了一大批 Java 和 Python ,Javascript ,c#程序员,c#的 winform 和 wpf 微软自己都不想推了,最近几年用 c#写后端和游戏 unity 的比较多,这个是事实,但是纯桌面客户端的很少,这个也是事实。
@yuhuai 或是你举几个例子,国内互联网公司有用 c#做桌面客户端,开发比较成功的案例,不要把别人不用,一律说成别人不懂,别人追求短平快,都是别人的原因。
@sunmker c#客户端生态的确差,你看过有几个互联网公司基于 c#开发客户端的例子,微软自己除外,做些简单的应用还好,你要要调用一些知名的第三方库,非常难受,比如 ffmpeg ,OpenCV ,sdl ,webrtc 这些。
不建议 QT 和 WPF ,用 electron 或是 Java 的 swing 都可以,学习 c++的时间成本太高,c#客户端生态太差,flutter 不了解不评价,你就想想现在主流前端和后端用的啥,就可以做出选择了。
118 天前
回复了 qviqvi 创建的主题 程序员 Git 配置代理无效
浏览器可以打开 github 吗。
已经很不容易了,用爱发电这么久。
124 天前
回复了 jingzhou 创建的主题 分享创造 上线了一个 [朋友圈文案生成] AI 小应用
130 天前
回复了 Sean9426 创建的主题 服务器 阿里云活动服务器真的垃圾
完全没有,你自己的问题,装个 Rocky Linux 就好啦,还有我搞不懂,你安装宝塔干嘛,作为一个专业人士,不是应该要纯净环境嘛。
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4988 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 07:32 · PVG 15:32 · LAX 00:32 · JFK 03:32
Developed with CodeLauncher
♥ Do have faith in what you're doing.