使用@Autowired在bean构造函数中注入spring4 bean

时间:2015-01-13 19:52:27

标签: spring hibernate jpa dependency-injection autowired

我有类对象构造函数,其中一个参数是Long parent_id因为对象是自相关的,如下所示:

public class Folder {
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Folder parent;

}

当我尝试使用Gson反序列化时,我必须使用Gson创建对象。使用parent_id我想创建Folder的新对象以将其应用于parent元素。

当我尝试做的时候:

@Transient @Autowired public Folder folderDao;

someMethod() {
    folderDao.get(9L);
}

我的道教课程:

@Override
public T get(Long id) {
    System.out.println("_Trying to get by id...");
    return (T) getCurrentSession().get(entityClass, id);
}

我得到了NullPointerException 并且此行不会被删除:System.out.println("_Trying to get by id...");

我不知道为什么。谁能帮我?我在Spring Injection上做错了什么。

顺便说一下:我的控制器有@Transactional注释

1 个答案:

答案 0 :(得分:0)

似乎skeletonElementDao为空。

你应该自动装备dao,而不是文件夹吗?

@Autowired 
private SkeletonElementDao skeletonElementDao;

而不是

@Transient @Autowired public Folder folder;