我试试:
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
protected List<URL> urlList;
但我得到错误:
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]
我看到了this个答案,但我无法映射网址列表。
答案 0 :(得分:0)
使用if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ) {
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptThirdPartyCookies( webView, true );
}
和ElementCollection
是映射非ENTITY元素集合的方法。
CollectionTable
然后,它将取决于您的JPA提供程序是否支持开箱即用的元素类型(@ElementCollection
@CollectionTable(name="MY_URLS")
Collection<URL> urlList;
)的持久性。我的提供商(DataNucleus)。如果没有<{1}},您始终可以使用URL
答案 1 :(得分:-1)
您使用的是什么版本的Hibernate?此外,在您的数据库中,列的数据类型是什么;是varchar,还是别的什么?
从我的理解,看起来你的问题是Hibernate不知道如何将数据库中的列转换为java.net.URL类,需要定义一个Hibernate类型来告诉Hibernate如何处理这种转换。
看起来Hibernate确实有一个应该处理这种转换的内置类型,假设您正在使用Hibernate的版本 - 我认为3.6或更高版本。
尝试将此注释添加到列表中:
@Type(type="org.hibernate.type.UrlType")
如果你的Hibernate版本没有org.hibernate.type.UrlType,或者你的数据库列数据类型不是varchar,你需要创建一个自定义的Hibernate类型来定义Hibernate转换任何数据需要做什么在数据库中输入java.net.URL并返回。如果它达到了这一点,请告诉我们,我们可以为您提供更多信息。