Dũng Trần Văn
4 question(s)
0 answer(s)
Avatar
0
Dũng Trần Văn Beginner
JPA deleteAll trong mối quan hệ OneToMany
<div class="markdown-block">Em chào mọi người ạ. Em đang gặp một trường hợp muốn được giải thích rõ hơn với Hibernate/JPA và mong mọi người giải thích giúp em cơ chế hoạt động.Em có 2 entity là A và B:Một A có nhiều B.Một B chỉ thuộc về một A.Trong entity A em khai báo như sau:</div><div class="markdown-block">@OneToMany(</div><div class="markdown-block">mappedBy = "parent",</div><div class="markdown-block">fetch = FetchType.LAZY,</div><div class="markdown-block">cascade = CascadeType.ALL,</div><div class="markdown-block">orphanRemoval = true</div><div class="markdown-block">)</div><div class="markdown-block">private List&lt;B&gt; childrens = new ArrayList&lt;&gt;();</div><div class="markdown-block">Trong service em có đoạn code đại khái như sau:</div><div class="markdown-block">@Transactional</div><div class="markdown-block">public void deleteChildren(Long aId, List&lt;Long&gt; deleteIds) {</div><div class="markdown-block">A parent = parentRepository.findById(aId)</div><div class="markdown-block">.orElseThrow();</div><div class="markdown-block">List&lt;B&gt; existingChildren = childRepository.findByParentId(aId);</div><div class="markdown-block">// kiểm tra deleteIds có thuộc về parent hay không</div><div class="markdown-block">List&lt;B&gt; childrenToDelete = existingChildren.stream()</div><div class="markdown-block">.filter(child -&gt; deleteIds.contains(child.getId()))</div><div class="markdown-block">.toList();</div><div class="markdown-block">childRepository.deleteAll(childrenToDelete);</div><div class="markdown-block">}</div><div class="markdown-block">Trong đoạn service trên em ko hề gọi fetch hay getChidren() list B của A, tuy nhiên khi em chạy test thành công nhưng checkDB thì thấy dữ liệu chưa được xóa đi. Em đã có tham khảo qua chat những vẫn chưa nhận đưcọ câu trả lời</div>
Answer
Avatar
1
Dũng Trần Văn Beginner
Xây web bán lẻ
<div class="markdown-block">Em chào mọi người ạ. Hiện tại em đang xây 1 web bán lẻ sử dụng cho 4 cơ sở kinh doanh. Nhưng vẫn còn khá nhiều thắng mắc về chi phí vận hành khi đưa lên production và những thứ em cần trả phí là gì và trong tầm giá bao nhiêu ạ. Mong anh/chị đã có kinh nghiệm giải đáp giúp em ạ.</div>
Answer
Avatar
0
Dũng Trần Văn Beginner
Vận hành website bán lẻ?
<div class="markdown-block">🌐 Những vấn đề pháp lý cần chuẩn bị khi vận hành website bán lẻ?</div>
Answer
Avatar
0
Dũng Trần Văn Beginner
Gửi Nhận Cookie Từ Backend Và Frontend Khác Domain
<div class="markdown-block">Xin chào mọi người, hiện tại em làm một project cá nhân chạy trên localhost với spring và html thuần. Ở phía backend(port:8080) và frontend(port:8085) và cả 2 em đều đã cấu hình chạy trên https (<a href="https://localhost).Em" class="markdown-link" target="_blank">https://localhost).Em</a>có case như sau, khi thực hiện login từ backend em có set cookie như thế này:</div><div class="markdown-block">private void setTokenCookie(String tokenType, String token, long ttl, HttpServletResponse servletResponse) {</div><div class="markdown-block">if (servletResponse == null) {</div><div class="markdown-block">throw new AppException(ErrorCode.INTERNAL_SERVER_ERROR, "HttpServletResponse is null");</div><div class="markdown-block">}</div><div class="markdown-block">ResponseCookie tokenCookie = ResponseCookie.from(tokenType, token)</div><div class="markdown-block">.httpOnly(true)</div><div class="markdown-block">.secure(true) </div><div class="markdown-block">.path("/")</div><div class="markdown-block">.maxAge(Duration.ofSeconds(ttl))</div><div class="markdown-block">.sameSite("None")</div><div class="markdown-block">.build();</div><div class="markdown-block">servletResponse.addHeader("Set-Cookie", tokenCookie.toString());</div><div class="markdown-block">}</div><div class="markdown-block">Tiếp theo khi thực hiện logout:</div><div class="markdown-block">const response = await fetch(logoutApiUrl, {</div><div class="markdown-block">method: "POST",</div><div class="markdown-block">credentials: "include",</div><div class="markdown-block">headers: {</div><div class="markdown-block">"Content-Type": "application/json",</div><div class="markdown-block">Authorization: <code class="markdown-inline markdown-inline-code">Bearer </code>,</div><div class="markdown-block">},</div><div class="markdown-block">});</div><div class="markdown-block">private</div>
Answer
0%