相关疑难解决方法(0)

NativeQuery Spring Data返回对象

我需要在Spring Data中实现这样的查询: -

Select User.name, sum(Activity.minutes) 
From User, Activity, ActivityStatus
Where User.id = ActivityStatus.userId
And Activity.id = ActivityStatus.activityId
AND ActivityStatus = "COMPLETED"
GROUP BY user.name;
Run Code Online (Sandbox Code Playgroud)

所以我需要参加3个表,所以我必须使用@QuerynativeQuery = true(纠正我,如果我错了这里)

所以我的Repository方法看起来像这样: -

@Query(value = "Select User.name, sum(Activity.minutes) as total_minutes
    From User, Activity, ActivityStatus
    Where User.id = ActivityStatus.userId
    And Activity.id = ActivityStatus.activityId
    AND ActivityStatus = "COMPLETED"
    AND User.Type = ?1
    GROUP BY user.name;",
    nativeQuery = true
    )
List<MyObj> getTotalActivityMinutesByUserType(String userType);
Run Code Online (Sandbox Code Playgroud)

MyObj class看起来像这样: -

public class MyObj {
    String name; …
Run Code Online (Sandbox Code Playgroud)

java jpa nativequery spring-data

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

Spring数据jpa - 返回对象的最佳方法?

我有这样的对象:

@Entity
public class DocumentationRecord {
    @Id
    @GeneratedValue
    private long id;

    private String topic;
    private boolean isParent;
    @OneToMany
    private List<DocumentationRecord> children;
...
}
Run Code Online (Sandbox Code Playgroud)

现在我想只获得主题和ID.有没有办法得到这样的格式:

[
{
id: 4234234,
topic: "fsdfsdf"
},...
]
Run Code Online (Sandbox Code Playgroud)

因为即使只使用此查询

public interface DocumentationRecordRepository extends CrudRepository<DocumentationRecord, Long> {

    @Query("SELECT d.topic as topic, d.id as id FROM DocumentationRecord d")
    List<DocumentationRecord> getAllTopics();
}
Run Code Online (Sandbox Code Playgroud)

我只能得到这样的记录:

[
  [
    "youngChild topic",
    317
  ],
  [
    "oldChild topic",
    318
  ],
  [
    "child topic",
    319
  ],
]
Run Code Online (Sandbox Code Playgroud)

我不喜欢数组数组我想获得具有属性id和主题的对象数组.实现这一目标最好的方法是什么?

spring hibernate jpa jpql spring-data-jpa

0
推荐指数
1
解决办法
1892
查看次数