Java hashset只返回两个元素
我正在尝试制作spring启动应用程序。我必须为每个用户接收一套日记日 因此,我有一个用户类,其中:Java hashset只返回两个元素,java,Java,我正在尝试制作spring启动应用程序。我必须为每个用户接收一套日记日 因此,我有一个用户类,其中: @OneToMany(mappedBy = "users", fetch = FetchType.EAGER) @OnDelete(action = OnDeleteAction.CASCADE) private Set<DiaryDay> diaryDays = new HashSet<>(); 在DiaryDayPhysicasDao和diary
@OneToMany(mappedBy = "users", fetch = FetchType.EAGER)
@OnDelete(action = OnDeleteAction.CASCADE)
private Set<DiaryDay> diaryDays = new HashSet<>();
在DiaryDayPhysicasDao和diarydaymentalDAO中,我有接收每个用户的所有日记日的方法(它们类似,因此只有一个示例):
我在两个表中都添加了3个示例,但我仅从每个示例中获得了第一个示例:
在java
Set
中,根据equals
和hashCode
方法的实现方式,对象会给人一种排除值的印象。首先尝试使用列表
,检查是否已加载所需的所有内容。如果是这种情况,请检查这些方法和数据中是否存在冲突。
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "users")
@OnDelete(action = OnDeleteAction.CASCADE)
private User users;
public Set findByUserId(Long userId) {
return (Set) getSession().createQuery("from DiaryDayMental where users.id =:userId").setParameter("userId", userId).stream().collect(Collectors.toSet());
}