学习笔记
JPA
delete方法
描述:JPA中的delete方法即使数据库中不存在要删除的值,依旧会正常删除,不会报错,但是这样可能会有点奇怪,因为如果传入的是已经不存在的ID,但依旧要删除,最好是要进行提示,该数据已经不存在无法进行删除。
解决方法:在删除前先查询一次,如果数据库中已经没有数据则报错或者进行提示。
Comment comment = commentRepo.findByCommentId(commentId).orElseThrow(() -> {
throw new ResourceNotFoundEx("未找到对应的comment");
});
commentRepo.deleteByCommentId(comment.getCommentId());
like方法
JPA中的findByLike
方法可以生成like的sql查询语句,但是注意不会自动生成%
,所以我们需要自己拼接上%
然后再调用查询。
awardList = awardRepo.findByNameLike("%" + name + "%",pageable).getContent();
并发编程
jstack <pid>
通过<pid>
查看进程中各个线程的状态,进程可以通过jps
查看
leetcode
Solution 646
-
贪心
public int findLongestChain(int[][] pairs) { int ans = 0; Arrays.sort(pairs, Comparator.comparingInt(a -> a[1])); int cur = Integer.MIN_VALUE; for (int[] pair : pairs) { if(pair[0] > cur){ cur = pair[1]; ans++; } } return ans; }
-
动态规划
关键:定义
dp[i]
为以pairs[i]
为结尾的最长数对链的长度public int findLongestChain(int[][] pairs) { int n = pairs.length; int[] dp = new int[n]; Arrays.fill(dp,1); Arrays.sort(pairs,Comparator.comparingInt(a -> a[0])); for (int i = 0; i < n; i++) { for (int i1 = 0; i1 < i; i1++) { if(pairs[i][0] > pairs[i1][1]){ dp[i] = Math.max(dp[i], dp[i1] + 1); } } } return dp[n-1]; }