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