Telling JAWS about your tables

JAWS использует отдельную таблицу для каждого из Ваших CMP entity beans. Для каждого CMP поля сущности в этой таблице отводится одна колонка.

По умолчанию JAWS создаст эти таблицы для Вас. Имена таблиц будут соответствовать ejb-имени бина [ejb-name of the bean], а имена колонок именам CMP полей. JDBC тип и SQL тип будут заданы в соответствии с картой отображения типов [type-mapping]. (подробности о jdbc и sql типах см. в разделе “Определение карты отображения типов”)

Однако, Вы можете захотеть переопределить это поведение и сообщить JAWS напрямую какие имена/типы он должен использовать. Например, Вы хотите использовать уже существующую таблицу. Для этого Вы должны определить соответствующие параметры в разделе <enterprise-beans> Вашего jaws.xml файла.

Пример 1

Вы создали entity bean, который репрезентирует класс. В Вашей базе данных уже существует таблица созданная с помощью следующей SQL команды:

CREATE TABLE CLASS (ID INTEGER, TEACHER VARCHAR(100), STUDENTNBR INTEGER);

В этом случае Ваш xml-файл должен выглядеть примерно так:

<jaws>
	<enterprise-beans>
		<entity>
			<ejb-name>ClassBean</ejb-name>
			<table-name>CLASS</table-name>
			<create-table>false</create-table>
			<cmp-field>
				<field-name>classId</field-name>
				<column-name>ID</column-name>
			</cmp-field>
			<cmp-field>
				<field-name>teacherName</field-name>
				<column-name>TEACHER</column-name>
			</cmp-field>
			<cmp-field>
				<field-name>studentCount</field-name>
				<column-name>STUDENTNBR</column-name>
			</cmp-field>
		</entity>
	</enterprise-beans>
</jaws> 
 

Пример 2

Ваш бин Class имеет поле типа String для хранения переменой Teacher. Вы не хотите использовать стандартную карту отображения типов для типа String (VARCHAR(256)) потому, что имя учителя скорее всего не будет таким длинным. Ваш xml файл должен выглядеть примерно так:

<jaws>
	<enterprise-beans>
		<entity>
			<ejb-name>ClassBean</ejb-name>
			...
			<cmp-field>
				<field-name>teacherName</field-name>
				<column-name>TEACHER</column-name>
				<jdbc-type>VARCHAR</jdbc-type>
				<sql-type>VARCHAR(100)</sql-type>
			</cmp-field>
			...
		</entity>
	</enterprise-beans>
</jaws> 
 			

Заметьте, что содержимое тэга <ejb-name> и всех тэгов <field-name> должно соответствовать декларированным в файле ejb-jar.xml.

Наши друзья