jpa配置映射包

当我们最终成熟到可以在JPA中使用某些自定义类型映射时,我们通常会停留在某些提供程序特定的解决方案上,因为JPA本身并未定义任何用于执行此操作的机制。 让我为您展示一个JPA提供程序Hibernate的自定义类型映射定义的示例。 假设我们在项目中使用Joda Money ,并且拥有一个属性为Money的实体。 Jadira – User Types项目已经提供了非常不错的Money类型映射实现。 我们要做的只是让Hibernate知道我们要使用特定的类型映射。 当您查看Hibernate Docs, 第5.1.4.1.1节:Type时 ,您会发现从最简单的方法开始的几种可能性–在每个具有Money类型的属性上使用@Type批注。 如果您在域映射中只有一个或很少一个这种类型的属性,则此选择可能很好。 很有可能早一点

或以后,当您的项目足够增长时,将会有越来越多的项目,并且最终会出现许多类似的行,它们定义了相同的类型映射。 如果您不喜欢重复自己的动作,或者您不信任徒弟进行的重构,则应该考虑使用另一种方式,使用@TypeDefs@TypeDef批注。 您可能会在Hibernate文档中阅读到:

“这些注释可以放在类或包级别。”

让我们关注第二个选项-包级别。 我们将这些注释放置package-info.java中,用于存放包的域实体(请参阅: Java语言规范– 7.4.1。命名包 )。 它看起来像这样:

/*** Provides the domain model.** @author Warlock*/
@org.hibernate.annotations.TypeDef(name = "money", defaultForType = Money.class, typeClass = PersistentMoneyAmount.class)
package com.blogspot.vardlokkur.domain;import org.jadira.usertype.moneyandcurrency.joda.PersistentMoneyAmount;
import org.joda.money.Money;

现在,当您使用Money类型映射属性时,无需附加类型映射规范即可完成此操作,如下所示:

package com.blogspot.vardlokkur.domain;...
import org.joda.money.Money;@Entity
@Table(name = "EMPLOYEE")
public class Employee implements Serializable {...
@Column(name = "SALARY")
private Money salary;...}

一个技术说明,在成为快乐的Money映射用户之前–由于PersistentMoneyAmount使用单列(持有金额)进行Money映射,因此需要定义将与金额一起使用的货币。 可以将默认货币定义为持久性单元属性: jadira.usertype.currencyCode

PS。 不要将上述Money示例作为Joda Money映射的指南,可能有更好的方法,请参阅Jadira User Types博客 。

甜点的几个链接:

  • 在Hibernate中注释自定义类型
  • Jadira用户类型,支持Joda Money
参考: JPA – Hibernate –在Warlock's Thoughts博客上来自我们JCG合作伙伴 Michal Jastak的程序包级别的类型映射 。

翻译自: https://www.javacodegeeks.com/2013/04/jpa-hibernate-type-mapping-on-package-level.html

jpa配置映射包

jpa配置映射包_JPA – Hibernate –包级别的类型映射相关推荐

  1. JPA – Hibernate –包级别的类型映射

    当我们最终成熟到可以在JPA中使用某些自定义类型映射时,我们通常会停留在某些提供程序特定的解决方案上,因为JPA本身并未定义任何实现此功能的机制. 让我为您展示一个JPA提供程序Hibernate的自 ...

  2. jpa 删除是否成功_JPA / Hibernate删除实体有时不起作用

    我有以下通常正常工作的代码: public void delete(T object) { EntityManager em = getPersistence().createEntityManage ...

  3. 在eclipse中关于Spring和Hibernate 的XML配置如何提示类的包路径的办法

    转载自  在eclipse中关于Spring和Hibernate 的XML配置如何提示类的包路径的办法 我们在配Spring 或者Hibernate 配置文件的时候,发觉在配置类路径的时候,在双引号下 ...

  4. java jpa jar_JPA 开发所需的Jar包 (基于Hibernate)

    JPA 开发所需的Jar包 (基于Hibernate) (一)下载Sun 的JPA规范(即:Jar包)登陆JavaEE 的 Technologies 页面: http://java.sun.com/j ...

  5. Hibernate初探之单表映射——jar包的导入

    编写第一个Hibernate例子需要的基本步骤 创建Hibernate的配置文件 创建持久化类 创建对象-关系映射文件 通过Hibernate API编写访问数据库的代码 使用版本:Hibernate ...

  6. Spring + hibernate + JPA 配置

    最近对hibernate的JPA实现比较感兴趣,在此记录下配置方法,备查. 先上maven依赖包配置,这里使用的是spring3.1.2和hibernate3.6.0 <dependencies ...

  7. jpa 实体映射视图_JPA教程:实体映射-第2部分

    jpa 实体映射视图 在上一篇文章中,我展示了一种持久保存实体的简单方法. 我解释了JPA用于确定实体默认表的默认方法. 假设我们要覆盖此默认名称. 我们之所以喜欢这样做,是因为数据模型是以前设计和修 ...

  8. Java开源项目Hibernate包作用详解

    Java开源项目Hibernate包作用详解 本文引自:http://hi.baidu.com/nick6610/blog/item/70b58afa0d0eab9259ee90f7.html Jav ...

  9. 如何用python和pip安装在txt文件中配置好版本的库包

    如何用python和pip安装在txt文件中配置好版本的库包 文章目录: 一.建立库包版本的txt配置文件 二.安装txt配置文件中的库包 有时候你自己用python实现一个项目,然后想把它在gith ...

最新文章

  1. android class newinstance 构造函数 参数,android Fragment里的newInstance和构造函数
  2. 阿里云 Ubuntu16.04 部署 LAMP
  3. 深入理解分布式技术 - BASE 理论
  4. 双通道和单通道区别_实测内存通道的区别:单通道比双通道内存更有优势?
  5. Flink 在又拍云日志批处理中的实践
  6. 参数到不进oracle,Oracle对于启动参数检查不严格
  7. CSRF:跨站请求伪造
  8. Oracle定时任务
  9. Netty技术细节源码分析-Recycler对象池原理分析
  10. 通俗易懂的生产环境Web应用架构介绍
  11. ArcGIS Engine中删除要素的几种方法总结
  12. cadlisp点选面积标注_一个在CAD中标注坐标的LISP
  13. mac安装maven
  14. Python修改图片分辨率(附代码) | Python工具
  15. linux系统优化步骤,优化Linux系统的12个步骤
  16. 百度搜索推广账户搭建思路
  17. 关于pcl1.11.0无法找到 pcl/io/openni_grabber.h的解决办法
  18. 数据库周刊33丨5大国产数据库中标中国移动;Oracle7月CPU安全预警;腾讯Tbase新版本发布;“2020数据技术嘉年华”有奖话题遴选;阿里云技术面试题;APEX 实现数据库自动巡检;MYSQ
  19. Charles 功能介绍和使用教程
  20. A - Vector-Sort,向量,排序

热门文章

  1. MySQL dayofweek()函数
  2. Java多线程干货系列(1):Java多线程基础
  3. JDK8的排序大法!!
  4. python3如何连接mysql数据库
  5. Js如何判断undefined和null
  6. 【最全最详细】publiccms实现将公共部分提取成单独模块引入
  7. springboot访问jsp页面变成直接下载?
  8. 解决获取请求参数的乱码问题
  9. 2015蓝桥杯省赛---java---A---1(熊怪吃核桃)
  10. zookeeper出现Error contacting service. It is probably not running.