我需要的服务:
@Service
public class CommentServiceImpl implements CommentService {
private CommentRepository commentRepository;
private TargetTypeRepository targetTypeRepository;
@Autowired
public CommentServiceImpl(final CommentRepository commentRepository, final TargetTypeRepository targetTypeRepository) {
this.commentRepository = commentRepository;
this.targetTypeRepository = targetTypeRepository;
}
@Override
public List<Comment> getComments(String targetType, Long targetId) {
TargetType targetTypeEntity = targetTypeRepository.findByCode(targetType);
return commentRepository.findByTargetTypeAndTargetId(targetTypeEntity, targetId);
}
@Override
public void deleteComments(String targetType, Long targetId) {
List<Comment> comments = getComments(targetType, targetId);
commentRepository.deleteAll(comments);
}
}
拦截器:
@Component
public class MvaSupportInterceptor extends EmptyInterceptor {
private static final long serialVersionUID = 1L;
@Autowired
private CommentService commentService;
@Override
public void onDelete(Object entity, Serializable id, Object[] state,String[] propertyNames, Type[] types)
{
if (entity instanceof DraftDoc)
{
commentService.deleteComments("DRAFT_DOC", ((DraftDoc)entity).getId()); //NPE
}
super.onDelete(entity, id, state, propertyNames, types);
}
}
配置就是这样:
@SpringBootApplication
public class RestApplication {
public static void main(String[] args) {
SpringApplication.run(RestApplication.class, args);
}
}
原因是以一种注册拦截器的方式:
spring.jpa.properties.hibernate.ejb.interceptor=my.package.MyInterceptorClassName.
它不允许在拦截器内使用bean。
建议的方法对我不起作用,因为我的Spring Boot版本是2.2:
如何在Spring Boot中使用Spring managed Hibernate拦截器?
@Configuration
public class HibernateConfiguration extends HibernateJpaAutoConfiguration{
@Autowired
Interceptor userInterceptor;
@Override
protected void customizeVendorProperties(Map<String, Object> vendorProperties) {
vendorProperties.put("hibernate.ejb.interceptor",userInterceptor);
}
}
@Component
class MyHibernateInterceptorCustomizer implements HibernatePropertiesCustomizer {
@Autowired
MyInterceptor myInterceptor
@Override
void customize(Map<String, Object> hibernateProperties) {
hibernateProperties.put("hibernate.session_factory.interceptor", myInterceptor);
}
}
我的项目是基于spring mvc的,我写了一个拦截器来拦截请求,我想从请求中获取参数,下面是我的代码: 但现在它抛出了一个异常: 出现例外的原因是什么?
我得到一个空指针异常在我的code.Please帮我解决它。这是我的代码。 这是我的原木猫。 第138行为点击法-
问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于
我已经更新了我的项目中的一些依赖关系之后,我的Hibernate配置类显示Nullpointerx的。 我将SpringDataJPA存储库与hibernate一起使用,已经超过24小时了,仍然没有找到任何关于小问题的适当解决方案。 我已经尝试过的一些解决方案:- 使用@bean(name=“entityManagerFactory”)提供bean名称 我面临的问题 波姆。xml文件 配置类 db
我对spring有点陌生,我遇到了一个空指针异常。我认为在我的MongoRepository上不起作用。由于某种原因,当我试了一些例子时,它起作用了。(运行函数中注释掉的代码起作用) 这是我得到的错误: 2016-05-20 02:31:20.877错误6272---[nio-8080-exec-2]O.A.C.C.C.[.[.[/].[dispatcherServlet]:路径为[]的上下文中s
我试图在列表视图的onItemClick中用另一个片段替换片段,我想将所选项目名称从列表片段发送到另一个片段,但它显示空指针异常 @覆盖onItemClick上的公共无效(AdapterView ar0,视图,int位置,长id){ 但是同样的概念在下面的按钮点击中工作