Класс
Car.java extends Type
Model model;
//getter & setter for model
Part part;
//getter & setter for part
//static nested class for primary key
Class static PK implements Serializable {
//constructors
//override hashcode and equals method and toString
}
//overrides the value, name and type from the Type class
Класс
Type.java
Value : string
Name : string
Type : string
Таблицы: (база данных Oracle)
Имя таблицы: Car (Model_id и Part_id является первичным ключом) Поля: ИмяModel_id Part_id
значение
Table Name: Model
Fields:
model_id
Table Name: Part
Fields:
part_id
Name
XML метаданных package.jdo имеет значение
<class name=”Car” table=”car” identity-type=”application” objectid-class=”Car$PK” detachable=”true”>
<field name=”product”…> //with foreign key tag, column tag
<field name=”model” ..> // with foreign key tag, column tag
<property name=”Value” persistence-modifier=”persistent”>
<column name=”Value” length=”50” jdbc-type=”VARCHAR”>
</property>
При отладке запроса выбирается значение выбора из Car для определенного ключа, но так как setValue ()отсутствует
Exception in thread "main" java.lang.NoSuchMethodError: com.package.dao.car.dnSetValue(Ljava/lang/String;)V
at com.package.dao.car.dnReplaceField(Car.java)
at com. package.dao.car.dnReplaceFields(Car.java)
Отображение jdo извлекает данные для других таблиц, когда класс расширяет другую другую таблицу, которая не определена в package.jdo и не помечена как постоянная.
Я пытаюсь перенести отображение jdo, которое работало в более старой версии (datanucleus 2.1.0), теперь использующей 5.2.1.
В таблице базы данных есть поле, которое в jdo java mapping class должно использовать расширенный класс getter / setter method?