是否有任何可用的API表示相同的KG,升计,KM等项目的各单位(Is there any avail

2019-07-18 01:13发布

在我的项目,地方我有一个工作unitOfIssueItems 。 现在,当然不同的项目可以有代表性的不同的单位。 所以,我正在寻找一些API或一些方法,能够完美地处理这种情况。

是否有任何可用的API,来提供一些方法来代表这些单位? 我听说过JScience这似乎令人印象深刻,但我再次面临映射它在另一个问题JPA 。 经过一番谷歌的工作,我发现了一些工作在这方面的事情- JScience-JPA ,但现在看来似乎还不稳定在生产中使用。

我还发现一些关于JSR-275 ,但是从这个JCP页面看起来它已被拒绝。

然后,我遇到了unitsofmeasure ,我还没有深入到细节。 但是,再次同样的问题来了。 可以这样使用JPA映射?

编辑: -从这个SO质疑我碰上了Java的数字与单位 ,但我不知道它是否是生产准备好了没有。

我真的很迷茫,看到上面这些选项后特别。 和JPA是一个额外的关注到我是否可以使用任何与否。 有没有人遇到这样一种情况,并找到了出路呢? 我真的需要一些帮助在这里。 我应该怎么使用? 如果没有其他出路,那么这将是代表这些单位适当的方式。 我看到一种方式是通过enums 。 但是,当然,这将是最后的选择。

Answer 1:

我是在我们进行了广泛的使用JSR-275的项目(之前它是由JCP拒绝)。 本来我们没有使用JPA,但后来决定,我们应该坚持使用JPA 2.0我们的模型,我不得不应付我的度量对象的持久性。

这可能不是回答你的问题,但可能会带来一些有趣的想法来讨论。

我们考虑了几种方案:

  1. 措施是序列化和JPA可以映射任何可序列化对象。 这里的问题是,这些措施将在数据库中保存为二进制对象,他们会受到序列化的所有问题(即版本等)
  2. 我们可以通过保持原始类型的数据(即整数,双,等),调整我们的模型,只要我们同意使用的度量国际单位,每单位。 因此,场将设在JPA支持的类型,但getter和setter方法将使用度量对象。 配置JPA映射是基于领域,而不是属性。 这里的问题是必须改变模式改变封装的数据,而不会影响域对象的公共接口。
  3. 由于我们使用Hibernate作为我们的持久性提供,我们可以接受来自JPA标准的偏离和使用Hibernate的自定义值类型映射度量对象才能疗法相应的基本类型。 然后,我们可以使用Hibernate注释用于此目的的映射我们的类型。 ( 见这里的示例 )。 在这其中需要注意的是失去持久性供应商的独立性。

我们结束了使用替代#3和它的工作非常适合我们。



Answer 2:

我建议你写你自己的。 也许你可能需要Unit Of Measure Conversion也。

从计量单位的定义ARTS零售数据模型逻辑视图

和转换



文章来源: Is there any available API to represent various units of item like KG, Litre, Metre, KM, etc