给出一对五和多对一的关系有啥问题。为啥会发生这个错误
Posted
技术标签:
【中文标题】给出一对五和多对一的关系有啥问题。为啥会发生这个错误【英文标题】:what s problem to give one-to-may and many-to-one relationship .why this error is occure给出一对五和多对一的关系有什么问题。为什么会发生这个错误 【发布时间】:2019-04-18 10:56:35 【问题描述】:org.hibernate.AnnotationException:非法尝试将非集合映射为@OneToMany、@ManyToMany 或@CollectionOfElements:blooom.utility.model.BlooomModules.serverModel 在 org.hibernate.cfg.annotations.CollectionBinder.getCollectionBinder(CollectionBinder.java:332) 在 org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1904) 在 org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:972) 在 org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:799) 在 org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies(AnnotationMetadataSourceProcessorImpl.java:250) 在 org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies(MetadataBuildingProcess.java:231) 在 org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:274) 在 org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:84) 在 org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:474) 在 org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:85) 在 org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:689) 在 org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724) 在 org.springframework.orm.hibernate5.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:615) 在 org.springframework.orm.hibernate5.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:599) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1821) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1758) ...省略了60个常用帧
【问题讨论】:
请把你的源代码提出问题 我不能那样做..@HienNguyen 您可以添加更多详细信息。 ***.com/questions/ask/wizard 这是提问的好方法。请参考本指南,***.com/help/how-to-ask 【参考方案1】:如果没有相关代码,很难回答您的问题。 也许您交换了模型类中的注释?
正如例外所说,您只能用@OneToMany
、@ManyToMany
或@CollectionOfElements
注释Collection
。
看看这里的例子:
https://en.wikibooks.org/wiki/Java_Persistence/ManyToOne https://en.wikibooks.org/wiki/Java_Persistence/ManyToMany【讨论】:
【参考方案2】:我认为您需要通过 Collection 更改您的类型字段,例如:
@OneToMany
private Article article;
替换为
@OnToMany
private Collection<Article> article;
【讨论】:
【参考方案3】:发生该错误是因为我在没有使用任何集合类的情况下引用了模型类。 错误代码 : 私人 XYZModel xyzmodel; 正确代码: 私有集合 xyzmodel = new HashSet();
【讨论】:
以上是关于给出一对五和多对一的关系有啥问题。为啥会发生这个错误的主要内容,如果未能解决你的问题,请参考以下文章