Java ObjectBox-对嵌套关系的查询
我有以下Java ObjectBox-对嵌套关系的查询,java,relationship,objectbox,Java,Relationship,Objectbox,我有以下实体类 @io.objectbox.annotation.Entity public class MultiplayerGameEntity extends BaseEntity { private int durationInHours; private ToMany<MultiplayerPlayerEntity> players; public MultiplayerGameEntity() { } public int g
实体
类
@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;
}
}
但这不起作用
java.lang.IllegalArgumentException:关系不属于实体多层性(17)
甚至可以做我正在做的事情吗,或者我需要以某种方式破解它吗?我想我已经把链接链接在一起了,这样第二个链接就是上一个链接的结果(实际上是一个diff QueryBuilder)
QueryBuilder QueryBuilder=box.query();
queryBuilder.link(multipleLayerGrayerEntity_u2;.players).link(multipleLayerPlayerEntity_2;u2eEntity).equal(userEntity_2;u2eId,uniqueId);
是的,应该是这样!完成说明:原始代码不起作用,因为无法直接从多层组织实体
实体信息访问用户实体
关系。使用QueryBuilder.link(relationInfo)
返回可以访问目标实体信息relationInfo
指向的关系的QueryBuilder
。
@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;
}
}
queryBuilder.link(MultiplayerGameEntity_.players);
queryBuilder.link(MultiplayerPlayerEntity_.userEntity).equal(UserEntity_.uniqueId, uniqueId);
return queryBuilder.build().find();
}
QueryBuilder<MultiplayerGameEntity> queryBuilder = box.query();
queryBuilder.link(MultiplayerGameEntity_.players).link(MultiplayerPlayerEntity_.userEntity).equal(UserEntity_.uniqueId, uniqueId);