Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] Calculating progress for an entity based on data from another table

Hello,

I am working with a legacy database where the warehouse order progress is calculated depending on many line items are finished. So I have 2 Entities:

WarehouseOrder
LineItem

the orders progress is calculated using the number of LineItems that have their state field set to anything but 1.

I would have a transient field in WarehouseOrder that holds the progress. I checked the @PostLoad listeners, but they have no session context so I can not execute any query. In Hibernate there is the @Formula annotation that allows you to specify a query for filling in the annotated field.

I tried this:

@SqlResultSetMapping(name = "progress", columns = @ColumnResult(name = "progress")) @NamedNativeQuery(name = "progress", query = "select 100 * (select count(p) from LegacyOrderPosition p, LegacyPickOrder o where p.id=o.id and p.status!=1) / count(p) as progress", resultSetMapping = "scalar")

But to no avail. Of course I got it wrong somehow, I know :)


Any ideas how this could be solved in EL? Maybe using an embedded Entity?

Thanks for any input,
Phil



Back to the top