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

使用@Autowired在bean构造函数中注入spring4 bean,spring,hibernate,jpa,dependency-injection,autowired,Spring,Hibernate,Jpa,Dependency Injection,Autowired,我有一个类对象构造函数,其中一个参数是Long parent\u id原因对象是自相关的,如下所示: public class Folder { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) private Folder parent; } 当我尝试使用Gson反序列化时,我必须使用Gson创建对象。我想使用parent_id创建文件夹的新对象,将其应用于parent元素 当我尝试这样做时: @Transient

我有一个类对象构造函数,其中一个参数是
Long parent\u id
原因对象是自相关的,如下所示:

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

}
当我尝试使用
Gson
反序列化时,我必须使用Gson创建对象。我想使用parent_id创建文件夹的新对象,将其应用于
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(“\u试图通过id获取…”)

我不知道为什么。有人能帮我吗?弹簧注射有什么问题吗


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

似乎
skeletonElementDao
为空

是否应该自动连接dao,而不是文件夹

@Autowired 
private SkeletonElementDao skeletonElementDao;
而不是

@Transient @Autowired public Folder folder;

那么folderDao可能是空的。你是从正确初始化的bean打电话吗?不知怎的,自动布线并没有连接folderDao?是的。它是空的。我不知道为什么?在控制器中工作正常吗?它在模型中不起作用。我不知道为什么。这是模型课上的方法吗?无法工作,因为自动连线是针对在bean上下文上初始化的bean的。是。someMethod位于模型/实体内的构造函数中。你所说的
bean上下文
是什么意思?它是控制器,还是什么?我想你们可以在控制器上这样做,但我更喜欢在更大的应用程序上使用单独的服务层。