我有这样的对象:
@Entity
public class DocumentationRecord {
@Id
@GeneratedValue
private long id;
private String topic;
private boolean isParent;
@OneToMany
private List<DocumentationRecord> children;
...
}
现在我只想获取主题和ID。有没有办法像这样获得它:
[
{
id: 4234234,
topic: "fsdfsdf"
},...
]
因为即使只使用此查询
public interface DocumentationRecordRepository extends CrudRepository<DocumentationRecord, Long> {
@Query("SELECT d.topic as topic, d.id as id FROM DocumentationRecord d")
List<DocumentationRecord> getAllTopics();
}
我只能得到这样的记录:
[
[
"youngChild topic",
317
],
[
"oldChild topic",
318
],
[
"child topic",
319
],
]
我不希望获得具有属性ID和主题的对象数组。实现这一目标的最好方法是什么?
在Spring Data JPA中,您可以使用投影:
基于接口 :
public interface IdAndTopic {
Long getId();
String getTopic();
}
基于类 (DTO):
@Value // Lombok annotation
public class IdAndTopic {
Long id;
String topic;
}
然后在您的仓库中创建一个简单的查询方法:
public interface DocumentationRecordRepository extends CrudRepository<DocumentationRecord, Long> {
List<IdAndTopic> findBy();
}
您甚至可以创建动态查询方法:
List<T> findBy(Class<T> type);
然后像这样使用它:
List<DocumentationRecord> records = findBy(DocumentationRecord.class);
List<IdAndTopic> idAndTopics = findBy(IdAndTopic.class);
我有这样的物体: 现在我只想获取主题和id。有没有办法以这样的格式获取它: 因为即使只使用这个查询 我只能得到这样的记录: 我不喜欢数组的数组,我想获得具有属性id和主题的对象数组。实现这一目标的最佳方式是什么?
我正在尝试使用HikariCP连接池。我能够让它工作,并获得一个我可以使用的连接。我不确定将连接返回到池的最佳方法是什么。 我有以下问题: 我是否应该在完成后关闭连接,依赖idleTimeout和maxLifetime设置,或者是否可以使用另一个调用来避免占用池中的连接 如果我关闭连接(而不是返回池),是否会创建其他连接对象以满足连接池大小的要求 寻找有用的建议。
问题内容: 我正在尝试选择多个字段,其中一个字段需要是一个数组,该数组的每个元素都包含 两个 值。每个数组项都需要包含一个名称(字符不同)和一个ID(数字)。我知道如何返回单个值的数组(使用关键字),但是我不确定如何返回本身包含两个值的对象的数组。 查询就像 我读到一种实现此目的的方法是,将值选择为一个类型,然后创建该类型的数组。问题是,该函数的其余部分已经返回了一个类型(这意味着我将拥有嵌套的类
问题内容: 这是一个小问题,因为我可以轻松地参加一对班做这项工作。我并不是真的想要这样做,我觉得应该有一些简单的,内置的,类似于Java的方法来返回两个值。你们最好的,最简单的方法是什么?数组?其他一些数据结构? 问题答案: 据我所知,不幸的是在Java中没有对的内置表示(我当然希望有)。就个人而言,当我编写一个项目时发现配对类经常很有用时,我会创建一个通用类(这可能是您在想的)。返回数组是一种快
问题内容: 我有一个说“销售”的对象列表。我只需要其产品与另一个列表(例如saleProductList)中的对象匹配的Sales对象。 除了循环以外,还有没有更好的方法可以做到这一点。 问题答案: 如果您已经在使用Google的Guava库,则它具有Collections2.filter()方法,该方法将仅返回集合中与给定Predicate匹配的项。 但是,这是否能回答您的问题取决于您避免循环的
问题内容: 我正在使用restTemplate向servlet发出请求,该servlet返回json中对象的非常简单的表示形式。 我有一个包含这两个字段的DTO以及相应的设置器和获取器。我想知道的是如何使用json响应创建对象,而不必“解析”响应。 问题答案: 我个人会推荐杰克逊。它相当轻巧,速度非常快,只需要很少的配置。这是反序列化的示例: