小编Gio*_*uri的帖子

android:layout_alignRight ="ID"与android:layout_toRightOf ="ID"有什么区别?

我认为标题是不言自明的.android:layout_alignRight ="@ id/someId"和android:layout_toRightOf ="@ id/someId"有什么区别?

layout android alignment

6
推荐指数
2
解决办法
2478
查看次数

我是否应该使用 DTO?

我正在使用 Spring 构建一个 Web 应用程序,现在我有一个实体、一个存储库、一个 RestController,并且我可以在浏览器中访问端点。

我现在正在尝试将 JSON 数据返回到浏览器,并且我在各种指南中看到了有关 DTO 的所有内容。

我真的需要 DTO 吗?我不能将序列化逻辑放在实体本身上吗?

spring

6
推荐指数
2
解决办法
5938
查看次数

Hibernate 使用不可变列表初始化集合

我有以下实体:

@Entity(name = "courses")
public class Course {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Singular
    @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    private Collection<Comment> comments = new ArrayList<>();

    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    private User createdBy;

    public void addComment(Comment comment) {
        comments.add(comment);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我从数据库加载课程时,评论将使用持久包进行初始化。当我调用 时出现问题addComment(comment),然后出现此异常:

Caused by: java.lang.UnsupportedOperationException: null
    at java.base/java.util.AbstractList.add(AbstractList.java:153) ~[na:na]
    at java.base/java.util.AbstractList.add(AbstractList.java:111) ~[na:na]
    at org.hibernate.collection.internal.PersistentBag.add(PersistentBag.java:408) ~[hibernate-core-5.4.18.Final.jar:5.4.18.Final]
Run Code Online (Sandbox Code Playgroud)

看来休眠分配的 Persistant Bag 是一个Collection.EmptyList不可变的,因此无法添加任何注释。

我需要更改什么才能添加评论?

java hibernate jpa

6
推荐指数
1
解决办法
2202
查看次数

是否可以在没有实体的情况下使用 JpaRepository ?

JpaRepository没有实体可以使用吗?在这种情况下,将其替换为 DTO。

如下示例

 @Repository
public interface BffRepository extends JpaRepository<BffDTO, String> {

@Query(nativeQuery = true, value = "select\n"
        + "ent.name as enterprise_name, dep.name as department_name,\n"
        + "sq.name as squad_name, acc.firstname as job_owner_name,\n"
        + "tpt.name as test_template_name, job.name, job.job_blocked, job.job_removed,\n"
        + "job.bot_scm_branch, job.bot_scm_url, job.schedule_startdate,\n"
        + "job.expiration_date, job.timestamp,job.uuid,job.schedule_starttime,\n"
        + "tpt.job_execution_timeout\n"
        + "from portal.jobs job\n"
        + "left join portal.enterprises ent on (ent.uuid = job.enterprise_id)\n"
        + "left join portal.departments dep on (dep.uuid = job.department_id)\n"
        + "left join portal.squads sq on (sq.uuid = job.squad_id)\n"
        + …
Run Code Online (Sandbox Code Playgroud)

java jpa spring-boot

6
推荐指数
1
解决办法
1万
查看次数

JAX-RS MessageBodyReader

我正在从提供者那里了解 MessageBodyReader 方法的工作原理。我看到该方法返回一个对象,但我不确定如何从服务访问该对象。我可以获得有关如何从 reader 类返回对象的解释吗?这将帮助我为所有 DTO 应用读取规则。提前致谢!

服务:

    @POST
    @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
    @Path("/CreateAccount")
    @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
    public Response createAccount(@Context HttpServletRequest req) {
        
        String a = "Reader success? ";//Would to see that string here!
        return Response.ok().build();
    }
Run Code Online (Sandbox Code Playgroud)

提供商:

@Provider
public class readerClass implements MessageBodyReader<Object>
{

@Override
public boolean isReadable(Class<?> paramClass, Type paramType,
        Annotation[] paramArrayOfAnnotation, MediaType paramMediaType) {
    // TODO Auto-generated method stub
    return true;
}

@Override
public Object readFrom(Class<Object> paramClass, Type paramType,
        Annotation[] paramArrayOfAnnotation, MediaType paramMediaType,
        MultivaluedMap<String, String> paramMultivaluedMap, …
Run Code Online (Sandbox Code Playgroud)

java jax-rs

5
推荐指数
1
解决办法
2万
查看次数

从 switch 重构多个 case

TestDTO testDTO = new TestDTO();
    
for (Object attribute : row.getAttributes()) {
    switch (attribute) {
    case "CATEGORY":
        testDTO.setCategory((String) attribute);
        break;
    case "DESCRIPTION":
        testDTO.setDescription((String) attribute);
        break;
    case "NOTE":
        testDTO.setNote((String) attribute);
        break;
    case "FEATURES":
        testDTO.setFeatures((String) attribute);
        break;
    case "INDICATOR":
        testDTO.setIndicator((String) attribute);
        break;
    case "LABEL":
        testDTO.setLabel((String) attribute);
        break;
    case "TYPE":
        testDTO.setType((String) attribute);
        break;
    default:

    }
}
Run Code Online (Sandbox Code Playgroud)

正如你在上面的代码中看到的,我们使用多个 case 来设置数据。代码工作正常。

有什么方法可以减少设置这些数据的多种情况。

在上面的代码中,问题是可维护性。因为假设如果我们有 30 个字段,那么我们需要为此放置 30 个案例。

有没有其他方法可以实现相同的目标?

java

5
推荐指数
1
解决办法
167
查看次数

PriorityQueue 在删除元素时更改顺序

在不提供自定义比较器的情况下,优先级队列会按升序插入元素,但是,在删除特定元素后,顺序会发生更改。

PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.add(10);
pq.add(1);
pq.add(2);
pq.add(2);
    
pq.remove(2);
for(int x: pq) {
    System.out.println(x);
}

//outputs: 1 10 2, instead of expected: 1 2 10
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢。

java priority-queue data-structures

5
推荐指数
1
解决办法
1013
查看次数

Microsoft Defender 配置脚本失败。请在日志中查找“WindowsDefenderChecker”记录

自从我迁移到新的 IntelliJ IDEA(2023.1 社区版)以来,每次创建/导入项目时,我都会得到:

在此输入图像描述

然而,当我单击 时Automatically,它最终显示:

在此输入图像描述

在日志中,只有:

2023-04-23 21:52:54,529 [ 250961]   INFO - #c.i.d.WindowsDefenderChecker - validation failed:
[-1] C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe [-NoProfile, -NonInteractive, -Command, (Get-AuthenticodeSignature 'C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.2\bin\defender-exclusions.ps1').Status]
Run Code Online (Sandbox Code Playgroud)

如果重要的话,这两种情况都会发生 - 当我使用经典(旧)或新 UI 时。

intellij-idea

5
推荐指数
0
解决办法
1973
查看次数

无法找到 Java SE 14 的 tools.jar

tools.jar 不存在于最新的 Java 版本 14 中。谁能帮助我了解它是否已被替换或在哪里?

我的系统有:

C:\Users\Admin>wmic os get osarchitecture
OSArchitecture
64-bit
Run Code Online (Sandbox Code Playgroud)

我已经通过jdk-14.0.2_windows-x64_bin.exeOracle 的网站下载安装了最新的 Java 版本。

安装后,我查看了安装文件夹C:\Program Files\Java\jdk-14.0.2\lib,它没有tools.jar.

我们是否需要为 JRE 安装任何其他有助于解决问题的软件包tools.jar

如果tools.jar不存在,替代品是什么?

java tools.jar

4
推荐指数
1
解决办法
2374
查看次数

Spring Boot 是否创建 N 个线程来处理 N 个 API 请求?

我正在使用 Spring Boot 2.5 编写 HTTP API 服务器。我对 Spring Boot 如何处理多个 HTTP 请求有点困惑?

假设 Spring Boot 应用程序一次处理 N 个请求。它是否为 Spring Boot 应用程序创建 N 个线程?

java spring-boot

4
推荐指数
1
解决办法
1602
查看次数