java - 创建名称为 'transactionManagerPostProcessor' : Initialization of bean failed 的 bean 时出错

标签 java hibernate grails groovy

完全错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is org.hibernate.MappingException: Association references unmapped class: java.util.List

这是我的域类:

class File implements Serializable {

    String path;
    String name;

    public File(String path, String name) {
        this.path = path;
        this.name = name;
    }
}

class Directory extends File {

    List files = [];

    public Directory(String path, String name) {
        super(path, name);
    }
}

这是我的目录服务:

@Transactional
class DirectoryService {

    def fetchDirectory(String path) {
        java.io.File dir = new Path(path);
        java.io.File[] files = dir.listFiles();

        Directory pdirectory = new Directory(path, dir.getName());
        List list = [];
        for(java.io.File file : files) {
            File pfile = new File(path, file.getName());
            list.add(pfile);
        }
        pdirectory.files = list;
        return pdirectory;
    }
}

出现此问题是因为我在 Directory 模型类中有一个 List files = []

我什至不明白问题所在,无法找到解决方案。为什么 Grails 不允许我在模型中包含列表?如果实际上不允许,我想知道如何让它发挥作用。

在我的应用程序中,我有许多模型的数据源不是数据库;在本例中,等效的 SQL 关系是“Directory hasMany File”。另外,目录本身是文件的子集。

最佳答案

我发现如果没有初始化,Groovy 就会初始化对象。例如,List<File> files编译为List<File> files = new List<File>(); 。所以,我将类型更改为 LinkedList一切正常。

关于java - 创建名称为 'transactionManagerPostProcessor' : Initialization of bean failed 的 bean 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35577453/

相关文章:

java - 我的索引越界错误发生在哪里?

java - 与数据库无关的查询,根据主键获取行号

grails - 获取类的所有 transient 字段

grails - 如何修改传递到Grails GSP中的属性的值

java - Java 中的可重置超时

java - 如何用Java编写惰性删除二叉搜索树的findMinimum

java - c3p0属性在配置文件中的哪里放置?

hibernate sessionfactory 作为全局 jndi 资源

spring - 在grails中左联接子查询?

java - 为什么 JPA/Hibernate 设计了一种强制重新定义事务边界的方法,即使对于一个插入/更新数据库语句也是如此?