ObjectLevelReadQuery
| Modifier and Type | Field and Description |
|---|---|
| protected transient ReadQuery | query
Stores the query to be executed. |
| protected Integer | |
| protected transient Object |
| Access | Constructor and Description |
|---|---|
| protected | |
| public | QueryBasedValueHolder(ReadQuery query, AbstractRecord row, AbstractSession session)
Initialize the query-based value holder. |
| public | QueryBasedValueHolder(ReadQuery query, Object sourceObject, AbstractRecord row, AbstractSession session)
Initialize the query-based value holder. |
| Modifier and Type | Method and Description |
|---|---|
| public ReadQuery | |
| public Integer | getRefreshCascadePolicy()
INTERNAL: Returns the refresh cascade policy that was set on the query that was used to instantiate the valueholder a null value means that a non refresh query was used. |
| public T | getValue(UnitOfWorkImpl uow)
Overrides org. |
| protected T | instantiate()
Implements abstract org. |
| protected T | |
| public T | instantiateForUnitOfWorkValueHolder(UnitOfWorkValueHolder<T> unitOfWorkValueHolder)
Implements abstract org. |
| public boolean | isPessimisticLockingValueHolder()
Implements abstract org. |
| public void | postInstantiate()
Overrides org. |
| public void | releaseWrappedValueHolder(AbstractSession targetSession)
Overrides org. |
| protected void | resetFields()
Overrides org. |
| protected void | |
| public void | |
| public void |
| query | back to summary |
|---|---|
| protected transient ReadQuery query Stores the query to be executed. | |
| refreshCascade | back to summary |
|---|---|
| protected Integer refreshCascade | |
| sourceObject | back to summary |
|---|---|
| protected transient Object sourceObject | |
| QueryBasedValueHolder | back to summary |
|---|---|
| protected QueryBasedValueHolder() | |
| QueryBasedValueHolder | back to summary |
|---|---|
| public QueryBasedValueHolder(ReadQuery query, AbstractRecord row, AbstractSession session) Initialize the query-based value holder. | |
| QueryBasedValueHolder | back to summary |
|---|---|
| public QueryBasedValueHolder(ReadQuery query, Object sourceObject, AbstractRecord row, AbstractSession session) Initialize the query-based value holder. | |
| getQuery | back to summary |
|---|---|
| public ReadQuery getQuery() Return the query. The query for a QueryBasedValueHolder is constructed dynamically based on the original query on the parent object and the mapping configuration. If modifying a query the developer must be careful not to change the results returned as that may cause the application to see incorrect results. | |
| getRefreshCascadePolicy | back to summary |
|---|---|
| public Integer getRefreshCascadePolicy() INTERNAL: Returns the refresh cascade policy that was set on the query that was used to instantiate the valueholder a null value means that a non refresh query was used. | |
| getValue | back to summary |
|---|---|
| public T getValue(UnitOfWorkImpl uow) Overrides org. Process against the UOW and attempt to load a local copy before going to the shared cache If null is returned then the calling UOW will instantiate as normal.
| |
| instantiate | back to summary |
|---|---|
| protected T instantiate() throws DatabaseException Implements abstract org. Doc from org. Instantiate the object.
| |
| instantiate | back to summary |
|---|---|
| protected T instantiate(AbstractSession session) throws DatabaseException Instantiate the object by executing the query on the session.
| |
| instantiateForUnitOfWorkValueHolder | back to summary |
|---|---|
| public T instantiateForUnitOfWorkValueHolder(UnitOfWorkValueHolder<T> unitOfWorkValueHolder) Implements abstract org. Triggers UnitOfWork valueholders directly without triggering the wrapped valueholder (this). When in transaction and/or for pessimistic locking the UnitOfWorkValueHolder needs to be triggered directly without triggering the wrapped valueholder. However only the wrapped valueholder knows how to trigger the indirection, i.e. it may be a batchValueHolder, and it stores all the info like the row and the query. Note This method is not thread-safe. It must be used in a synchronized manner
| |
| isPessimisticLockingValueHolder | back to summary |
|---|---|
| public boolean isPessimisticLockingValueHolder() Implements abstract org. INTERNAL: Answers if this valueholder is a pessimistic locking one. Such valueholders are special in that they can be triggered multiple times by different UnitsOfWork. Each time a lock query will be issued. Hence even if instantiated it may have to be instantiated again, and once instantiated all fields can not be reset. Since locks will be issued each time this valueholder is triggered, triggering this directly on the session in auto commit mode will generate an exception. This only UnitOfWorkValueHolder's wrapping this can trigger it. Note This method is not thread-safe. It must be used in a synchronized manner
| |
| postInstantiate | back to summary |
|---|---|
| public void postInstantiate() Overrides org. INTERNAL: Run any extra code required after the valueholder instantiates For query based VH, we notify the cache that the valueholder has been triggered
| |
| releaseWrappedValueHolder | back to summary |
|---|---|
| public void releaseWrappedValueHolder(AbstractSession targetSession) Overrides org. Releases a wrapped valueholder privately owned by a particular unit of work. When unit of work clones are built directly from rows no object in the shared cache points to this valueholder, so it can store the unit of work as its session. However once that UnitOfWork commits and the valueholder is merged into the shared cache, the session needs to be reset to the root session, ie. the server session.
| |
| resetFields | back to summary |
|---|---|
| protected void resetFields() Overrides org. Reset all the fields that are not needed after instantiation.
| |
| setQuery | back to summary |
|---|---|
| protected void setQuery(ReadQuery theQuery) Set the query. | |
| setRefreshCascadePolicy | back to summary |
|---|---|
| public void setRefreshCascadePolicy(Integer refreshCascadePolicy) INTERNAL: | |
| setSourceObject | back to summary |
|---|---|
| public void setSourceObject(Object sourceObject) | |