Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
如何用JPA映射java.net.URL列表?_Java_Spring_Hibernate_Jpa - Fatal编程技术网

如何用JPA映射java.net.URL列表?

如何用JPA映射java.net.URL列表?,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我尝试: 我看到了答案,但无法映射URL列表。您使用的是什么版本的Hibernate?另外,在数据库中,列的数据类型是什么;是瓦查尔还是别的什么 据我所知,您的问题似乎是Hibernate不知道如何将数据库中的列转换为java.net.URL类,需要定义Hibernate类型来告诉Hibernate如何处理此转换 看起来Hibernate确实有一个内置类型可以处理这种转换,假设您使用的是Hibernate版本,我认为是3.6或更高版本 尝试将此批注添加到列表中: org.springframew

我尝试:


我看到了答案,但无法映射URL列表。

您使用的是什么版本的Hibernate?另外,在数据库中,列的数据类型是什么;是瓦查尔还是别的什么

据我所知,您的问题似乎是Hibernate不知道如何将数据库中的列转换为java.net.URL类,需要定义Hibernate类型来告诉Hibernate如何处理此转换

看起来Hibernate确实有一个内置类型可以处理这种转换,假设您使用的是Hibernate版本,我认为是3.6或更高版本

尝试将此批注添加到列表中:

org.springframework.beans.factory.BeanCreationException: Error creating
 bean with name 'entityManagerFactory' defined in ServletContext resource
 [/WEB-INF/servlet-context.xml]: Invocation of init method failed; nested
 exception is org.hibernate.AnnotationException: Use of @OneToMany or
 @ManyToMany targeting an unmapped class:
 my.package.MyModel.urlList[java.net.URL]

如果您的Hibernate版本没有org.Hibernate.type.UrlType,或者您的数据库列数据类型不是varchar,则需要创建自定义Hibernate类型,该类型定义Hibernate将数据库中的任何数据类型转换为java.net.URL并返回所需的操作。如果达到这一点,请告诉我们,我们可以为您提供更多信息。

使用
ElementCollection
CollectionTable
是映射非实体元素集合的方法

@Type(type="org.hibernate.type.UrlType")
@ElementCollection
@CollectionTable(name=“我的URL”)
收集清单;

然后,这将取决于您的JPA提供者是否支持该元素类型(
URL
)的即时持久性。我的提供者(DataNucleus)是这样做的。如果没有,您总是可以使用
AttributeConverter

您的问题是什么?如何映射java.net.URL的列表?URL如何是一个实体????一个实体是指与一个实体的关系。你没有。阅读任何像样的JPA教程,当你意识到它满足了你的要求时,你可以自由地接受这个答案
@Type(type="org.hibernate.type.UrlType")
@ElementCollection
@CollectionTable(name="MY_URLS")
Collection<URL> urlList;