Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ObjectBox-对嵌套关系的查询_Java_Relationship_Objectbox - Fatal编程技术网

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);