[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Weaving and targetEntity


I assume this is the first time you have used our weaving support? (i.e. you are not seeing this issue when converting from dynamic to static weaving)

Our weaving code may not be using targetEntity to account for the fact that your may be using interfaces in your model to represent the relationships. Can you please post the stack trace of one of the exceptions you are seeing?


Zeb Ford-Reitz wrote:

I'm in the process of adding static weaving to our application and have run into a bit of a problem. All of my relationship targets are interfaces that have a single implementer, so I use the "targetEntity" property liberally in my mapping annotations.

For example, where class B implements interface IB, the getter and setter in class A look like:

    private IB b;

    @OneToOne(cascade = CascadeType.ALL,
              targetEntity = B.class,
              fetch = FetchType.LAZY)
    public IB getB() {
        return b;

    public void setB(IB newB) {
        b = newB;

This worked without any issues until I enabled static weaving. Now, whenever I try to persist an entity, I receive a java.lang.NoSuchMethodException indicating that there is no setter method with the appropriate signature. What confuses me is that (considering the example above) the desired setter method signature is "setB(B)", whereas I would expect it to be "setB(IB)". Am I missing some obvious configuration or setting that would allow the interfaces to be used instead of the concrete classes?

Best regards, Zeb Ford-Reitz


eclipselink-users mailing list