是否有注释在jpa2中定义多列索引

use*_*108 4 orm hibernate jpa jpa-2.0

Hibernate提供了一种通过Table定义多列索引的机制.有没有办法通过JPA或JPA2指定这是一个ORM不可知的方式(例如使用javax.persistence.*API)

khi*_*ras 6

刚刚出现了使用Hibernate 4.3.8与JPA 2.1集成的相同问题.看来,mjaggard的答案是正确的.但是,给定的用法示例如下所示:

@Index(name="EMP_NAME_INDEX", columnList={"F_NAME", "L_NAME"})
Run Code Online (Sandbox Code Playgroud)

我不知道这是否有效.我知道在我使用JPA 2.1的情况下,值columnList不是数组而是字符串.所以对我来说,可以通过以下方式定义所需的双列索引:

@Index(name="EMP_NAME_INDEX", columnList="F_NAME,L_NAME")
Run Code Online (Sandbox Code Playgroud)

也就是说,只需使用逗号分隔单个字符串中的列名.这对我使用Postgres DBMS很有用.我检查了一下,在两列上成功创建了索引.


Pas*_*ent 2

不,正如我在回答之前的问题时所暗示的那样,没有标准化的方法,您必须为此使用提供程序扩展(当它们存在时)。