Adnotacjom ElementCollection musi towarzyszyć zdefiniowana adnotacja Column

Kiedy atrybut ma adnotację @ElementCollection, jest dla niego tworzona oddzielna tabela zawierająca atrybut ID i jego wartość. W interfejsie OpenJPA kolumna dla atrybutu z adnotacją ma nazwę element, natomiast w interfejsie EclipseLink nazwy kolumn są oparte o nazwach atrybutów. Aby zachować zgodność z tabelami utworzonymi za pomocą interfejsu OpenJPA, należy dodać adnotację @Column z atrybutem name ustawionym na wartość element.

Ta reguła przeprowadza skanowanie w poszukiwaniu adnotacji @ElementCollection, które nie mają adnotacji @Column z atrybutem name. Automatyczna poprawka doda adnotację @Column lub edytuje istniejącą adnotację @Column, która nie posiada atrybutu name.

Na przykład reguła powoduje oznaczenie adnotacji @ElementCollection w poniższej klasie jednostki dostępu do pola, ponieważ nie ma ona adnotacji @Column.

import java.util.List;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class ElementCollectionEntity {@Id private int id; @ElementCollection private List <łańcuch> listofStrings; }

Automatyczna poprawka doda adnotację @Column.

import java.util.List;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class ElementCollectionEntity {@Id private int id; @ElementCollection
    @Column(name = "element") private List <łańcuch> listofStrings; }

Informacje na ten temat oraz na temat innych problemów z migracją interfejsu OpenJPA do interfejsu EclipseLink zawiera podręcznik Migracja interfejsu JPA ze środowiska OpenJPA do EclipseLink: Odwzorowania.