JDO: отображение таблицы в POJO (без аннотации) и расширение класса для свойств - PullRequest
0 голосов
/ 07 октября 2019

Класс

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?

...