当前位置: 首页 > 面试题库 >

如何绘制地图

柳韬
2023-03-14
问题内容

我试过了

@ManyToMany(cascade = CascadeType.ALL)
Map<String, Double> data = new HashMap<String, Double>();

但它产生错误:

   org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.company.Klass.data[java.lang.Double]
at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1016)
at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:567)
at org.hibernate.cfg.annotations.MapBinder$1.secondPass(MapBinder.java:80)
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1130)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:296)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1115)

任何的想法?


问题答案:

好吧,错误消息很清楚:Double不是实体。如果要映射基本元素的集合,请使用CollectionOfElement批注(来自Hibernate)或ElementCollection批注(来自JPA
2.0)。

因此,假设您使用的是Hibernate Annotations 3.4,请尝试以下操作:

@CollectionOfElements(targetElement = Double.class)
@org.hibernate.annotations.MapKey(targetElement = String.class)
Map data;

或者,使用泛型时:

@CollectionOfElements
Map<String, Double> data;

如果您使用的是Hibernate Annotations 3.5+,则更喜欢JPA 2.0注释:

@ElementCollection(targetClass = Double.class)
@MapKeyClass(String.class)
Map data;

或者,使用泛型时:

@ElementCollection
Map<String, Double> data;

参考文献

  • Hibernate注释3.4参考指南
    • 2.4.6.2.2。地图
    • 2.4.6.2.5。元素或复合元素的集合
  • JPA 2.0规范
    • 第11.1.12节“ ElementCollection批注”
    • 第11.1.28节“ MapKeyClass注释”

您知道如何自定义“ ELEMENT”和“ MAPKEY”列名称吗?

您可以完全自定义结果。我认为以下示例展示了所有内容:

@CollectionOfElements(targetElement = Double.class)
@JoinTable(name = "COLLECTION_TABLE", 
    joinColumns = @JoinColumn(name = "PARENT_ID"))
@org.hibernate.annotations.MapKey(targetElement = String.class, 
    columns = @Column(name = "SOME_KEY"))
@Column(name = "SOME_VALUE")
private Map data;
  • 的收集表名称Map是使用定义的JoinTable
    • 父级键的列名称是使用JoinColumn中的设置的JoinTable
  • 映射键的列名称在 MapKey
  • 映射值的列名称是使用定义的 Column


 类似资料:
  • 如果(status!=ConnectionResult.Success){//Google Play服务不可用,则显示状态 获取对SupportMapFragment的引用 从片段获取GoogleMap对象 获取最佳提供程序的名称 正在获取当前位置 获取当前位置的纬度 在Google Map中显示当前位置 缩放谷歌地图 在TextView tv_location中设置纬度和经度 这是我使用arra

  • 最新代码-http://jsfidle.net/ysqdh/88/- 这个版本使用gDouglasPeuker从绘制的版本中创建一个rudamentary多边形形状-http://jsfiddle.net/ysqdh/94/ ^这将禁用用于绘制的映射,并在创建形状后再次启用该映射。 我正在开发一个谷歌地图应用程序。而不是多边形点击练习。我想要能够画一个形状-然后转换成一个多边形。 下面是我的最新应

  • 操作步骤: ①以编辑状态进入地图,点击左侧图例面板中要使用的图层,所选图层的边缘显示为蓝色,表示新添加的记录将绘制在此图层上。例如:选择标注图层。 ②点击地图右上方工具栏上"添加标注"按钮。 ③在地图上,将鼠标移到想要添加标注的位置,点击一下,放置标注即可。 ④在弹出的信息窗中,填写标题及其他说明信息。 ⑤点击信息窗口右下角的"完成"图标以完成添加。 提示 ●区域和线路需双击鼠标左键结束绘制。 操

  • 我一直在研究在谷歌地图上绘制一个静态半径的圆,我遇到的所有答案都描述了绘制标记和与纬度坐标相关的圆。 我需要的是: 这个圆圈和标记漂浮在Google Maps片段上方,即:当您平移和缩放时,它保持静止。这里有一个棘手的部分:我希望能够得到地图中的覆盖区域进行处理(例如:lat、中心标记的长度和圆的半径,取决于地图上的缩放级别)。 我怎样才能做到这一点?提前谢谢。

  • 我如何在上根据搜索的城市绘制边界线,如图中显示搜索的城市地图的红线所示? 我看到了各种链接,但找不到解决办法。 谢啦

  • 我在绘制以下值时遇到一些问题: 我所做的是 但我有一个错误: TypeError:ufunc“add”不包含签名类型与dtype匹配的循环(' 那么我已经试过了 但我还有另外一个错误: TypeError:不可损坏的类型:“列表” 我对频率感兴趣。 我该怎么做才能修好它? 从原始数据集(因为我在复制代码时遇到了一些错误): 输出: 我需要绘制每个单词中值的频率(例如,对于单词1,132和144的频