Hi Frank,
You can try adding/calling this to print them:
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbJoin;
import org.apache.cayenne.map.DbRelationship;
...
public static void dumpRuntimeRelationships(ObjectContext objectContext)
{
for (DbEntity entity :
objectContext.getEntityResolver().getDbEntities())
{
StringBuilder builder = new StringBuilder();
for (DbRelationship relationship : entity.getRelationships())
{
if
(relationship.getName().startsWith("runtimeRelationship"))
{
builder.append(" Name: ");
builder.append(relationship.getName());
builder.append(", Source: ");
builder.append(relationship.getSourceEntity().getName());
builder.append(", Target: ");
builder.append(relationship.getTargetEntity().getName());
builder.append(", Joins: ");
for (DbJoin join : relationship.getJoins())
{
builder.append(join.getSourceName());
builder.append(" : ");
builder.append(join.getTargetName());
}
builder.append("\n");
}
}
if (builder.length() > 0)
{
builder.insert(0, "\n");
builder.insert(0, entity.getName());
builder.insert(0, "\nEntity: ");
System.out.println(builder);
}
}
}
Example output:
Entity: s_budget_years
Name: runtimeRelationship18, Source: s_budget_years, Target:
p_line_items, Joins: pk : delta_quantity_fk
Name: runtimeRelationship19, Source: s_budget_years, Target:
p_line_items, Joins: pk : delta_total_cost_fk
mrg
PS. The "source" info is a bit redundant, but will copy/paste well if you
need to send to someone.
On Thu, Mar 17, 2016 at 10:17 AM, Frank Herrmann <
[email protected]> wrote:
> Thanks everyone. We were able to pepper some temporary logging in the code
> and figure out the relationship. I appreciate all the quick responses.
>
> -Frank
>
> On Thu, Mar 17, 2016 at 10:12 AM, Michael Gentry <[email protected]>
> wrote:
>
> > Hi Jurgen,
> >
> > Maybe you are seeing something different than me? When I have logging
> > turned on, I see things like:
> >
> > org.apache.cayenne.map.EntityResolver added runtime complimentary
> > DbRelationship from s_budget_years to p_line_items
> > ...
> > org.apache.cayenne.map.EntityResolver added runtime complimentary
> > ObjRelationship from BudgetYears to LineItem
> >
> > It doesn't specify the relationship name, though.
> >
> > mrg
> >
> >
> > On Thu, Mar 17, 2016 at 9:30 AM, <[email protected]> wrote:
> >
> > >
> > >
> > > Hi Frank
> > >
> > > Cayenne logs the runtime relationships it generates when it loads the
> > > model into memory.
> > >
> > > So if you look in the log which it also sends to System.err and search
> > > for "runtimeRelationship725" then you will be able to see which entity
> > > it's associated with. At least then he'll have a clue as where to begin
> > > looking.
> > >
> > > Regards
> > >
> > > Jurgen
> > >
> > > On 2016-03-17 15:02, Frank Herrmann wrote:
> > >
> > > > Thanks. I passed this along to the developer. We are using version
> 3.1.
> > > >
> > > > On Wed, Mar 16, 2016 at 6:29 PM, Michael Gentry <
> [email protected]
> > >
> > > > wrote:
> > > > Hi Frank, I don't have any handy code to do this at the moment, but
> the
> > > approach I would take is to write a utility method to dump the model's
> > > source/destination relationship information immediately after loading
> the
> > > model into memory. Then, when you get the validation exception, you can
> > > reference that data dump for assistance. mrg PS. What version of
> Cayenne?
> > > On Wed, Mar 16, 2016 at 3:12 PM, Frank Herrmann <
> > > [email protected]> wrote: Hello all, We have a
> > > developer here that recently asked for my help and told him I'd reach
> > out.
> > > He is getting a validation failure error on a runtime relationship
> > > (specifically runtimeRelationship725). As these are created during
> > runtime,
> > > he is setting a break point in the code at the commit to try and figure
> > out
> > > what object this runtime relationship is attached to. My question is,
> is
> > > there an easy way to pinpoint what object this relationship is attached
> > to,
> > > or what relationship it is reversing so he can troubleshoot the
> > > validation error? Thanks, -Frank -- FRANK HERRMANN SOFTWARE ENGINEER T:
> > 561-880-2998
> > > x1563 E: [email protected] [image: [ Modernizing Medicine ]] <
> > > http://www.modmed.com/ [1]> [image: [ Facebook ]] <
> > > http://www.facebook.com/modernizingmedicine [2]> [image: [ LinkedIn
> ]] <
> > > http://www.linkedin.com/company/modernizing-medicine/ [3]> [image: [
> > > YouTube ]] <http://www.youtube.com/user/modernizingmedicine [4]>
> [image:
> > > [ Twitter ]] <https://twitter.com/modmed_EMA [5]> [image: [ Blog ]] <
> > > http://www.modmed.com/BlogBeyondEMR [6]> [image: [ Instagram ]] <
> > > http://instagram.com/modernizing_medicine [7]>
> > >
> > > --
> > > FRANK HERRMANN
> > > SOFTWARE ENGINEER
> > >
> > > T: 561-880-2998 x1563
> > >
> > > E: [email protected]
> > >
> > > [image: [ Modernizing Medicine ]] <http://www.modmed.com/ [1]>
> > > [image: [ Facebook ]] <http://www.facebook.com/modernizingmedicine
> [2]>
> > > [image:
> > > [ LinkedIn ]] <http://www.linkedin.com/company/modernizing-medicine/
> > > [3]> [image:
> > > [ YouTube ]] <http://www.youtube.com/user/modernizingmedicine [4]>
> > > [image: [
> > > Twitter ]] <https://twitter.com/modmed_EMA [5]> [image: [ Blog ]]
> > > <http://www.modmed.com/BlogBeyondEMR [6]> [image: [ Instagram ]]
> > > <http://instagram.com/modernizing_medicine [7]>
> > >
> > >
> > >
> > > Links:
> > > ------
> > > [1] http://www.modmed.com/
> > > [2] http://www.facebook.com/modernizingmedicine
> > > [3] http://www.linkedin.com/company/modernizing-medicine/
> > > [4] http://www.youtube.com/user/modernizingmedicine
> > > [5] https://twitter.com/modmed_EMA
> > > [6] http://www.modmed.com/BlogBeyondEMR
> > > [7] http://instagram.com/modernizing_medicine
> > >
> >
>
>
>
> --
> FRANK HERRMANN
> SOFTWARE ENGINEER
>
> T: 561-880-2998 x1563
>
> E: [email protected]
>
>
>
> [image: [ Modernizing Medicine ]] <http://www.modmed.com/>
> [image: [ Facebook ]] <http://www.facebook.com/modernizingmedicine>
> [image:
> [ LinkedIn ]] <http://www.linkedin.com/company/modernizing-medicine/>
> [image:
> [ YouTube ]] <http://www.youtube.com/user/modernizingmedicine> [image: [
> Twitter ]] <https://twitter.com/modmed_EMA> [image: [ Blog ]]
> <http://www.modmed.com/BlogBeyondEMR> [image: [ Instagram ]]
> <http://instagram.com/modernizing_medicine>
>