休眠中的@JoinFormula

时间:2019-03-16 11:23:36

标签: java hibernate jpa

我正在使用Hibernate,但遇到这样的问题,我无法理解正在分析的代码中的这一行:

@JoinFormula( "REGEXP_REPLACE(phoneNumber, '\\+(\\d+)-.*', '\\1')::int" )

我使用的来源是:https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#embeddables

我不知道国家/地区ID和phoneNumber之间的依赖关系在哪里。 问候

1 个答案:

答案 0 :(得分:2)

在阅读该片段后,您会发现

  

country实体中的User关联由国家/地区映射   phoneNumber属性提供的标识符。

  

因此,@JoinFormula批注用于定义自定义联接   亲子关联之间的关联。


基本上,JOINUser之间的Country由该计算值得出。

例如,带有数字的User

+40-123-4567

JOIN的{​​{1}}的ID为

Country

因为40 函数可以从数字中推断出REGEXP_REPLACE

40是类型转换。