В отдельном файле book_mapping.xml (листинг 5.27), придерживаясь заданной XML-схемы, вы можете изменить отображение для любых данных сущности. Тег
·················xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance"
············xsi: schemaLocation="http://java.sun.com/xml/ns/persistence/orm
·················http://java.sun.com/xml/ns/persistence/orm_2_1.xsd"
·················version="2.1">
··
····
····
······
········
······
······
········
······
······
········
······
····
··
Всегда следует помнить о том, что XML имеет преимущественное значение перед аннотациями. Хотя атрибут description и аннотирован посредством @Column(length = 500), используется та длина столбца, которая указана в файле book_mapping.xml (см. листинг 5.27). Она равна 2000. Это может привести в замешательство, если вы взглянете на соответствующий код и увидите значение 500, а затем посмотрите на DDL-код и увидите значение 2000. Никогда не забывайте проверять XML-дескриптор развертывания.
Результатом слияния XML-метаданных и метаданных аннотаций является то, что сущность Book будет отображена в структуру таблицы BOOK_XML_MAPPING, определенную в листинге 5.28. Если вы решите полностью проигнорировать аннотации и определить свое отображение с использованием только XML, то сможете добавить тег
create table BOOK_XML_MAPPING (
··ID BIGINT not null,
··BOOK_TITLE VARCHAR(255) not null,
··DESCRIPTION VARCHAR(2000),
··NB_OF_PAGE INTEGER not null,
··PRICE DOUBLE(52, 0),
··ISBN VARCHAR(255),
··ILLUSTRATIONS SMALLINT,
··primary key (ID)
);
Чтобы заставить все это работать, не хватает лишь одной порции информации. Вам нужно указать ссылку на файл book_mapping.xml в своем файле persistence.xml, для чего потребуется прибегнуть к тегу
·············xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance"
·············xsi: schemaLocation="http://java.sun.com/xml/ns/persistence
·············http://java.sun.com/xml/ns/persistence/persistence_2_1.xsd"
·············version="2.1">
··
····
······
······
······
········
······
··