Java tutorial
/* * Copyright 2011-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package kr.debop4j.data.hibernate.interceptor; import kr.debop4j.data.model.IStatefulEntity; import lombok.extern.slf4j.Slf4j; import org.hibernate.EmptyInterceptor; import org.hibernate.type.Type; import java.io.Serializable; /** * ? ? Interceptor. * * @author ? ( sunghyouk.bae@gmail.com ) * @since 12. 11. 21. */ @Slf4j public class StatefulEntityInterceptor extends EmptyInterceptor { private static final long serialVersionUID = 6945967982003155513L; /** ? ? ? ? . */ public Boolean isPersisted(Object entity) { if (entity instanceof IStatefulEntity) return ((IStatefulEntity) entity).isPersisted(); return null; } /** ? ? ?. ? isPersisted ? true . */ @Override public boolean onLoad(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { if (entity instanceof IStatefulEntity) { ((IStatefulEntity) entity).onLoad(); } return false; } /** ? ? ? . ? isPersisted ? false . */ public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { if (entity instanceof IStatefulEntity) { ((IStatefulEntity) entity).onSave(); } return false; } }