Я использую карту hazelcast для хранения объекта очень похож на следующее:hazelcast не равен предикат поиска атрибута коллекции
@Entity
@Table(name = "organization")
public class Organization
{
public static final String MAP_NAME = "organizations";
@Id
@Column(name = "organizationId", unique = true, nullable = false, columnDefinition = "VARCHAR(36)")
protected String organizationId = UUID.randomUUID().toString();
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "organizationId")
private Set<RecordKeeperConfig> recordKeeperConfigs;
}
И RecordKeeperConfig определяется как:
@Entity
@Table(name = "recordKeeperConfig")
public class RecordKeeperConfig
{
public static final String MAP_NAME = "recordKeeperConfig";
@Id
@Column(name = "recordKeeperConfigId", unique = true, nullable = false, columnDefinition = "VARCHAR(36)")
protected String recordKeeperConfigId = UUID.randomUUID().toString();
@Column(name = "organizationId", columnDefinition = "VARCHAR(36)")
protected String organizationId;
@Enumerated(EnumType.STRING)
@Column(name = "type", length = 8)
protected RecordKeeperType type;
}
В конечном итоге я хочу чтобы вернуть набор всех объектов организации, где есть хотя бы один RecordKeeperConfig. Я попытался с помощью Predicate.notEqual («recordKeeperConfigs», NULL), но он производит следующее исключение:
java.lang.IllegalArgumentException: Cannot use NotEqualPredicate predicate with an array or a collection attribute