java - 循环列表并更改属性 - Java

标签 java

我试图计算运行时的成就数量并将其设置到页面内的应用程序对象中,但总成就超出了该对象。

基本上,totalAchievements 应该位于每个应用程序内部。

y o

Controller

    Page<UserApplication> userApplications = userApplicationRepository.findByUserUsername(pageable, username);
for(UserApplication userApplication : userApplications.getContent()) {

    long totalAchievements = achievementRepository.countByApplicationApplicationId(userApplication.getApplication().getApplicationId());

    userApplication.setTotalAchievements(totalAchievements);
}
 return new ResponseEntity<>(userApplications, HttpStatus.OK);

型号

@Entity
@Table(name = "USER_APPLICATION")
public class UserApplication {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;
    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
    @JoinColumn(name = "userId", referencedColumnName="userId")
    @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) 
    @JsonIgnore
    private User user;
    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
    @JoinColumn(name = "applicationId", referencedColumnName="applicationId")
    @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) 
    private Application application;
    @Transient
    private long totalAchievements;

}

最佳答案

如果您希望totalAchievements 位于应用程序对象内,则必须在应用程序实体内添加该成员。

@Entity
class Application{
    @Transient
    private long totalAchievements;
}

然后将其设置为

userApplication.getApplication().setTotalAchievements(totalAchievements);

关于java - 循环列表并更改属性 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60658430/

相关文章:

Java JUnit : looking for a "assertNothing"

java - 在 java 中解析自定义数据格式

java - 如何禁用单个 JVM 实例的反射

java - Google Drive API 文件上传错误 : “Missing end boundary in multipart body.”

java - 如何以 scala 方式解析基于行的文本文件(.mht)?

java - 在等待另一个线程时让当前线程进入休眠状态

java - 分配空字符时会发生什么?

java - 如何将正则表达式与selenium中的url匹配?

java - 匹配转义字符(引号)的正则表达式

java - 如果 5 秒内没有任何反应,如何在 android 中执行操作?