Re: to-many relationship where I don't want most of the items

"Robert A. Decker" <[email protected]> Mon, 22 Jun 2026 00:12:51 +0200
Newsgroups gmane.comp.java.cayenne.user
Message-ID <[email protected]>
Yes that'd be great. I'll see if I can get it working in 4.x. It sounds like=
 what  was going to start looking into.=20

Rob

Sent from my iPhone

> On Jun 21, 2026, at 23:58, Michael Gentry <[email protected]> wrote:
>=20
> =EF=BB=BFI have a CayenneUtils from a 3.1 project I could send you. Not su=
re if it
> would work with your version of Cayenne, but it includes methods such as:
>=20
> - boolean isDirty(DataContext dataContext) // Checks if there are modified=

> objects in the DC, ignoring phantoms.
>=20
> - Collection<? extends CayenneDataObject> newObjects(DataContext
> dataContext) // Returns all new objects in the DC.
>=20
> - Collection<? extends CayenneDataObject> deletedObjects(DataContext
> dataContext) // Returns all deleted objects in the DC.
>=20
> - Collection<? extends CayenneDataObject> modifiedObjects(DataContext
> dataContext) // Returns all modified objects in the DC.
>=20
> - Collection<? extends CayenneDataObject> uncommittedObjects(DataContext
> dataContext) // Returns all uncommitted objects in the DC.
>=20
> - <T> Collection<T> objectsForType(Collection<? extends CayenneDataObject>=

> searchObjects, Class<T> type) // Looks for objects of a certain type.
>=20
>=20
> You could do an objectsForType(newObjects(dc), DataMarkerEntry.class) to
> find your non-persisted DataMarkerEntry entries. And then maybe pair those=

> objects with your visibleDataMarkerEntries().
>=20
>=20
>> On Sun, Jun 21, 2026 at 5:39=E2=80=AFPM Robert A. Decker <decker@robdecke=
r.com>
>> wrote:
>>=20
>> Yes I added them to the relationship - I just assume that if I iterate
>> through the data markers on the relationship including the new ones it'll=

>> hit the database a bunch, loading in the faults as I look for isVisible=3D=
true
>>=20
>> I'm porting this from WebObjects and looking at the old code they passed
>> the new data markers in and added them to the return list pulled from the=

>> database.
>>=20
>> I was wondering if there's a way to get, for example, non-persisted
>> entries of a certain type. I'll look at the api.
>>=20
>> If I have to I'll just pull them all out of the database and filter them.=

>> There's only a small number of users with hundreds of data markers - most=

>> people only have a few.
>>=20
>> Rob
>>=20
>> Sent from my iPhone
>>=20
>>>> On Jun 21, 2026, at 23:26, Michael Gentry <[email protected]> wrote:
>>>=20
>>> =EF=BB=BFHi Robert,
>>>=20
>>> Just curious where your non-persisted DataMarkerEntry objects are lying
>>> around. I'm assuming you haven't added them to your dataMarkerEntries
>>> relationship yet.
>>>=20
>>> Thanks,
>>> mrg
>>>=20
>>>=20
>>>> On Sun, Jun 21, 2026 at 11:25=E2=80=AFAM Robert A. Decker <decker@robde=
cker.com
>>>=20
>>>> wrote:
>>>>=20
>>>> I have a to-many relationship where I really only want to pull out a fe=
w
>>>> out of hundreds. In this case, it's those with is_visible set to true. I=

>>>> never actually work with them when is_visible is false, but I can't
>> delete
>>>> them either because they audit changes.
>>>>=20
>>>> person.dataMarkerEntries - this is modelled in the modeller and pulls
>> all
>>>> data marker entries from the database. I don't want this.
>>>> person.visibleDataMarkerEntries  - this is my method and it has a query=

>>>> that only pulls out visible data marker entries from the database:
>>>>=20
>>>> ObjectSelect<DataMarkerEntry> query =3D
>>>> ObjectSelect.query(DataMarkerEntry.class)
>>>> .where(DataMarkerEntry.IS_VISIBLE.isTrue())
>>>> ....
>>>>=20
>>>> However, the visibleDataMarkerEntries won't include non-persisted (new)=

>>>> data marker entries. But if I call dataMarkerEntries to see the
>>>> non-persisted data marker entries then will it pull all of them out of
>> the
>>>> database too?
>>>>=20
>>>> Is there a way for me in visibleDataMarkerEntries to also include
>>>> non-persisted data marker entries off of my personr instance?
>>>>=20
>>>> Rob
>>>>=20
>>>>=20
>>=20