问一个问题啊:hibernate load(id) 方法的到是空值,网上看到一个答案:get返回的实体对象,load返回的是代理的对象而已.
那么 是这样吗?问题怎么解决呢?
public Object load(String entityName, Serializable id) throws HibernateException {
820 LoadEvent event = new LoadEvent(id, entityName, false, this);
821 boolean success = false;
822 try {
823 fireLoad( event, LoadEventListener.LOAD );
824 if ( event.getResult() == null ) {
825 getFactory().getEntityNotFoundDelegate().handleEntityNotFound( entityName, id );
826 }
827 success = true;
828 return event.getResult();
829 }
830 finally {
831 afterOperation(success);
832 }
833 }
private void fireLoad(LoadEvent event, LoadType loadType) {
902 errorIfClosed();
903 checkTransactionSynchStatus();
904 LoadEventListener[] loadEventListener = listeners.getLoadEventListeners();
905 for ( int i = 0; i < loadEventListener.length; i++ ) {
906 loadEventListener[i].onLoad(event, loadType);
907 }
908 }
看了下源码,但是后面的看不懂了
那么 是这样吗?问题怎么解决呢?
public Object load(String entityName, Serializable id) throws HibernateException {
820 LoadEvent event = new LoadEvent(id, entityName, false, this);
821 boolean success = false;
822 try {
823 fireLoad( event, LoadEventListener.LOAD );
824 if ( event.getResult() == null ) {
825 getFactory().getEntityNotFoundDelegate().handleEntityNotFound( entityName, id );
826 }
827 success = true;
828 return event.getResult();
829 }
830 finally {
831 afterOperation(success);
832 }
833 }
private void fireLoad(LoadEvent event, LoadType loadType) {
902 errorIfClosed();
903 checkTransactionSynchStatus();
904 LoadEventListener[] loadEventListener = listeners.getLoadEventListeners();
905 for ( int i = 0; i < loadEventListener.length; i++ ) {
906 loadEventListener[i].onLoad(event, loadType);
907 }
908 }
看了下源码,但是后面的看不懂了









