【发布时间】:2020-01-25 19:22:28
【问题描述】:
我有以下Entity 课程
@io.objectbox.annotation.Entity
public class MultiplayerGameEntity extends BaseEntity {
private int durationInHours;
private ToMany<MultiplayerPlayerEntity> players;
public MultiplayerGameEntity() {
}
public int getDurationInHours() {
return durationInHours;
}
public void setDurationInHours(int durationInHours) {
this.durationInHours = durationInHours;
}
public ToMany<MultiplayerPlayerEntity> getPlayers() {
return players;
}
public void setPlayers(ToMany<MultiplayerPlayerEntity> players) {
this.players = players;
}
}
和
@io.objectbox.annotation.Entity
public class MultiplayerPlayerEntity extends BaseEntity {
public ToOne<UserEntity> userEntity;
public ToMany<MultiplayerRoundEntity> rounds;
public MultiplayerPlayerEntity() {
}
}
最后
@io.objectbox.annotation.Entity
public class UserEntity extends BaseEntity {
private String uniqueId;
private String displayName;
private ToMany<UserEntity> friends;
public UserEntity() {
}
public UserEntity(String uniqueId, String displayName) {
this.uniqueId = uniqueId;
this.displayName = displayName;
}
public String getUniqueId() {
return uniqueId;
}
public void setUniqueId(String uniqueId) {
this.uniqueId = uniqueId;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public ToMany<UserEntity> getFriends() {
return friends;
}
public void setFriends(ToMany<UserEntity> friends) {
this.friends = friends;
}
}
我正在尝试搜索并带回所有包含给定 UserEntity 的 MultiplayerGameEntity
在 SQL 术语中(因为这就是我的大脑的工作方式)我会是 JOINing MultiplayerGameEntity 到 MultiplayerPlayerEntity 然后 MultiplayerPlayerEntity 到 UserEntity
我尝试使用 link() 来执行此操作,但我似乎无法弄清楚如何链接第二个关系。
到目前为止的代码...
queryBuilder.link(MultiplayerGameEntity_.players);
queryBuilder.link(MultiplayerPlayerEntity_.userEntity).equal(UserEntity_.uniqueId, uniqueId);
return queryBuilder.build().find();
}
但这不起作用说明
java.lang.IllegalArgumentException: Relation not part of Entity MultiplayerPlayerEntity (17)
是否有可能做我正在做的事情,或者我需要以某种方式破解它?
【问题讨论】:
标签: java relationship objectbox