Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate:如何强制Hibernate设置集合的类型?_Java_Mysql_Spring_Hibernate - Fatal编程技术网

Java Hibernate:如何强制Hibernate设置集合的类型?

Java Hibernate:如何强制Hibernate设置集合的类型?,java,mysql,spring,hibernate,Java,Mysql,Spring,Hibernate,我被冬眠问题弄糊涂了,希望你能帮助我=) 我的问题是: 我有一个数据库,有两个表,Addressbook和Contact,在我的场景中,它们之间的关系是1:n 现在Hibernate在反向工程之后在类“AbstractAddressbook”中为我生成以下代码: 但我需要的是: private Set<Contact> contacts = new HashSet<Contact>(0); private Set contacts=new HashSet(0); 我如

我被冬眠问题弄糊涂了,希望你能帮助我=)

我的问题是:

我有一个数据库,有两个表,Addressbook和Contact,在我的场景中,它们之间的关系是1:n

现在Hibernate在反向工程之后在类“AbstractAddressbook”中为我生成以下代码:

但我需要的是:

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

我如何才能做到这一点,我必须在哪里为逆向工程设置它?

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


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

使用MyEclipse时,只需添加MyEclipse附带的HibernateTemplate即可

我建议您遵循本教程:


在“Hibernate代码生成配置”中的导出程序上选择“使用Java 5语法”

Hibernate(和JPA)都是强类型的,您到底想实现什么?发布一些实体代码,您期望的输出是什么。您正在做的事情听起来可能很琐碎,但这还不够。我正在尝试将我的MySql数据库映射到Java类,唯一的问题是Hibernate没有正确地匹配集合,正如您在上面看到的。你需要什么样的代码部分?我想你搞错了,我想使用Hibernate通过反向工程工具生成DAO和抽象类,在其中有一个部分叫做“配置类型映射细节”,我想我必须告诉Hibernate表的类型,因为到目前为止,它只是创建了一个没有任何类型的集合。希望你知道我的意思,我已经有了,我使用MyEclipse,它也使用JBoss工具(用于逆向工程),它生成所有的抽象类、普通类、xml文件和DAO文件。唯一的问题是,它没有映射集合(collection)类型。。。我真的不知道在“配置类型映射详细信息”中在哪里设置它,这是一个愚蠢的问题,但为什么不在生成后更改它呢?您可以在JPA下映射集合类型。再说一次,您使用的是JPA注释还是Hibernate XML?我不使用任何注释……我的代码完全由Hibernate(daos类等)生成,因此,是的,我使用了Hibernate.cfg.XML。我所能说的就是发布配置和快速模式,我会看一看。似乎正确的解决方案是重写类,并在无法自动生成类时提供所需的方法。请注意,汽车发电会带来很多问题。这似乎是个好主意,直到它咬到你为止。如果你需要一个真实的例子,可以在谷歌上搜索.NET*.edmx文件。我只需要使用这个工具来创建类,然后从那里保持它的稳定。
private Set<Contact> contacts = new HashSet<Contact>(0);