Полная ошибка:Ошибка создания боб с именем 'transactionManagerPostProcessor': инициализация боба не удалось
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);
}
}
Вот мой DirectoryService:
@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;
}
}
Проблема возникает из-за того, что у меня есть класс List files = []
в классе модели каталога.
Я даже не понимаю проблему, чтобы найти решение. Почему Grails не позволяет мне иметь список в моделях? И если это фактически не разрешено, я хочу знать, как заставить его работать.
В моем приложении у меня много моделей с источниками данных, которые не являются базами данных; и в этом случае эквивалент отношения SQL является «Directory hasMany File». Также сама директория является подмножеством файла.
Это работает, если вы не инициализируете список в модели? – shaydel
Вы пытались использовать вместо этого 'static hasMany = [files: File]'? Я думаю, что он должен знать тип домена для коллекции/отношения. –
@shaydel нет, но я нашел решение. – Gasim