class JpaFinderProxy
extends java.lang.Object
implements org.aopalliance.intercept.MethodInterceptor
Modifier and Type | Class and Description |
---|---|
private static class |
JpaFinderProxy.FinderDescriptor
A wrapper data class that caches information about a finder method.
|
private static class |
JpaFinderProxy.ReturnType |
Modifier and Type | Field and Description |
---|---|
private Provider<javax.persistence.EntityManager> |
emProvider |
private java.util.Map<java.lang.reflect.Method,JpaFinderProxy.FinderDescriptor> |
finderCache |
Constructor and Description |
---|
JpaFinderProxy(Provider<javax.persistence.EntityManager> emProvider) |
Modifier and Type | Method and Description |
---|---|
private void |
bindQueryNamedParameters(javax.persistence.Query jpaQuery,
JpaFinderProxy.FinderDescriptor descriptor,
java.lang.Object[] arguments) |
private void |
bindQueryRawParameters(javax.persistence.Query jpaQuery,
JpaFinderProxy.FinderDescriptor descriptor,
java.lang.Object[] arguments) |
private void |
cacheFinderDescriptor(java.lang.reflect.Method method,
JpaFinderProxy.FinderDescriptor finderDescriptor)
writes to a chm (used to provide copy-on-write but this is bettah!)
|
private JpaFinderProxy.ReturnType |
determineReturnType(java.lang.Class<?> returnClass) |
private java.lang.Object |
getAsCollection(JpaFinderProxy.FinderDescriptor finderDescriptor,
java.util.List results) |
private JpaFinderProxy.FinderDescriptor |
getFinderDescriptor(org.aopalliance.intercept.MethodInvocation invocation) |
java.lang.Object |
invoke(org.aopalliance.intercept.MethodInvocation methodInvocation) |
private final java.util.Map<java.lang.reflect.Method,JpaFinderProxy.FinderDescriptor> finderCache
private final Provider<javax.persistence.EntityManager> emProvider
public java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation methodInvocation) throws java.lang.Throwable
invoke
in interface org.aopalliance.intercept.MethodInterceptor
java.lang.Throwable
private java.lang.Object getAsCollection(JpaFinderProxy.FinderDescriptor finderDescriptor, java.util.List results)
private void bindQueryNamedParameters(javax.persistence.Query jpaQuery, JpaFinderProxy.FinderDescriptor descriptor, java.lang.Object[] arguments)
private void bindQueryRawParameters(javax.persistence.Query jpaQuery, JpaFinderProxy.FinderDescriptor descriptor, java.lang.Object[] arguments)
private JpaFinderProxy.FinderDescriptor getFinderDescriptor(org.aopalliance.intercept.MethodInvocation invocation)
private void cacheFinderDescriptor(java.lang.reflect.Method method, JpaFinderProxy.FinderDescriptor finderDescriptor)
method
- The keyfinderDescriptor
- The descriptor to cacheprivate JpaFinderProxy.ReturnType determineReturnType(java.lang.Class<?> returnClass)