objectForQuery = ObjectContext.selectOne I'm not in front of the code right now, but I believe the type parameter is unbounded to allow for fetching data rows as well, which are not DataObjects or Persistent or anything.
John On Mon, Nov 11, 2013 at 11:48 AM, Ramiro Aparicio < [email protected]> wrote: > Hi, > > I am doing today my usual updated maven depencies for our future product > release, so I am migrating my 3.1 code to the new 3.2 generics style and I > missed that all the generics code uses just T as "T extends Object" and > not "T extends DataObject" (or maybe another superinterface wich makes > sense) it is not a serious issue but it can help avoiding runtime errors if > you miss the correct class name. > > Also I miss a generics typed version of objectForQuery I did it for myself > so maybe you can include it in the next version: > > // Must add context as parameter > protected <U extends DataObject, T extends Select<U>> U objectForQuery > (T query) { > List<U> objects = getThreadDataContext().select(query); > > if (objects.size() == 0) { > return null; > } else if (objects.size() > 1) { > throw new CayenneRuntimeException("Expected zero or one > object, instead query matched: " + objects.size()); > } > > return objects.get(0); > } > > I will tell you if I find something worth noting. > > Best regards. > > Ramiro Aparicio >
