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.