我需要连接 2 个表并以 JSON 格式返回数据。对于这个想法在一个HashMap中,但是不知道该怎么做。
用户
@Entity
public class User {
//...
}
简介
@Entity
public class Profile {
@JoinColumn(name = "user_id")
@ManyToOne
private User user;
//...
}
存储库
public interface UserRepository extends JpaRepository<User, Long>{
//...
}
public interface ProfileRepository extends JpaRepository<Profile, Long>{
//...
}
我需要列表中每个用户的个人资料数量。
John 0
Victor 2
Maria 4
...
有什么更好的方法来做到这一点?
最佳答案
您可以创建一个映射表并使用该表来连接两个表:
@OneToMany(fetch=FetchType.LAZY)
@JoinTable
(
name="USER_PROFILE",
joinColumns={ @JoinColumn(name="USER_ID", referencedColumnName="ID")},
inverseJoinColumns={ @JoinColumn(name="PROFILE_ID", referencedColumnName="ID")}
)
private List<Profile> profileList;
USER_PROFILE 表:
- USER_ID 号码
- PROFILE_ID 号
当您获取用户列表时,您可以对其进行迭代并获取每个用户的个人资料列表:
ArrayList<User> userList = UserRepository .findAll();
for(user:userList)
{
user.getProfileList().size(); //You can get size for each user
}
关于java - Spring数据映射对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38067477/