【问题标题】:Hibernate: How can I force hibernate to set types for collections?Hibernate:如何强制休眠为集合设置类型?
【发布时间】:2013-02-17 13:04:37
【问题描述】:

我对休眠问题很迷茫,希望您能帮助我=)!

这是我的问题:

我有一个包含两个表的数据库,地址簿和联系人,在我的场景中,它们之间的关系是 1:n。

现在 Hibernate 在“AbstractAddressbook”类中通过逆向工程生成以下代码:

private Set contacts = new HashSet(0);

但我需要的是这样的:

private Set<Contact> contacts = new HashSet<Contact>(0);

我怎样才能做到这一点,我必须在哪里进行逆向工程设置?

【问题讨论】:

  • Hibernate(和 JPA)都是强类型的,你到底想完成什么?发布您的一些实体代码以及您的预期输出。您正在做的事情听起来可能微不足道,但这还不足以提供足够的信息。
  • 我正在尝试将我的 MySql 数据库映射到 Java 类中,这样做的唯一问题是 Hibernate 与 Set 不正确匹配,如上所示。您需要什么样的代码部分?

标签: java mysql spring hibernate


【解决方案1】:

在“休眠代码生成配置”中的导出器上选择“使用 Java 5 语法”

【讨论】:

    【解决方案2】:

    当您使用 MyEclipse 时,只需添加 MyEclipse 附带的 HibernateTemplate

    我建议您遵循本教程:

    http://www.myeclipseide.com/documentation/quickstarts/hibernate/

    【讨论】:

      【解决方案3】:

      感谢您的澄清(我已经删除了这里的垃圾)。我不能说我对 Hibernate 逆向工程有任何经验。我建议使用 Eclipse JPA 工具 (eclipse.org) 并通过简单的 JDBC 连接从新的 JPA 项目“生成实体”。 (那里有很多教程)。它在映射数据库方面做得很好,并且在推断正确的类型方面做得很好(您可能必须将 Set 更改为 List 或类似的小东西)。我在 4 天前针对一个中等复杂的数据库运行了这个,它做得很好。

      除非你有一个奇怪的要求(比如它需要在纯 Hibernate XML 配置或其他东西中),否则 JPA 工具通常做得很好并且它们是免费的。 (附注:JBoss 工具,一个 Eclipse 插件,也应该有 Hibernate 工具,并且可能会生成 xml 映射)。

      【讨论】:

      • 我想你误会了,我想使用 Hibernate 通过逆向工程工具生成 DAO 和抽象类,其中有一个部分称为“配置类型映射详细信息”我想我必须告诉在某处休眠表的类型,因为到目前为止它只是创建了一个没有任何类型的集合。希望你明白我的意思
      • 我已经有了,我使用 MyEclipse,它也使用 JBoss 工具(用于逆向工程),它生成所有 AbstractClasses、普通类、xml 文件和 DAO 文件,唯一的问题,它没有t 映射 Set(集合)类型...我真的不知道在“配置类型映射详细信息”中设置它的位置
      • 一个愚蠢的问题,但为什么不在生成后更改它?您可以在 JPA 下映射 Set 类型。同样,您使用的是 JPA 注释还是 Hibernate XML?
      • 我不使用任何注释...我的代码完全由 Hibernate(daos 类等)生成,所以是的,我使用 hibernate.cfg.xml
      • 我只能说是发布配置和快速架构,我会看看它。似乎正确的解决方案是覆盖您的类并在您无法自动生成它时提供您需要的方法。请注意,自动生成会带来很多问题。在它咬你之前,这似乎是个好主意。如果您需要真实世界的示例,请在 Google 中查找 .NET *.edmx 文件。我只是使用该工具制作课程,然后从那里保持稳固。
      猜你喜欢
      • 2023-03-18
      • 2012-10-29
      • 1970-01-01
      • 2012-06-17
      • 1970-01-01
      • 2017-01-03
      • 2012-06-04
      • 2019-03-06
      • 2011-06-14
      相关资源
      最近更新 更多