JPA - отключить наследование на подклассе - PullRequest
0 голосов
/ 11 января 2012

Мой класс "Resource_Image" является подклассом Resource, и все вещи работают как положено, но в моей базе данных обе таблицы, содержащие столбец "STRUCTURE".Зачем?Использование setRs в экземпляре Resource_Image устанавливает Resource_Structure для суперкласса, но почему у меня тоже есть столбец «STRUCTURE» в таблице «res_images», это не имеет смысла?Смотрите код внизу.Есть идеи?

@Entity
@Table(name="res")
@Inheritance(strategy=InheritanceType.JOINED)
public class Resource {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long id;

    @JoinColumn(name = "STRUCTURE",nullable=false)
    private Resource_Structure rs;

    //getter and setter for rs
    public final void setRs(Resource_Structure rs) {
        this.rs = rs;
    }
    //...
}

@Entity
@Table(name="res_images")
public class Resource_Image extends Resource
{
    @Column(name = "WIDTH",nullable=false)
    private int width;

    @Column(name = "HEIGHT",nullable=false)
    private int height;

    //NO getter and setter for rs
}

1 Ответ

0 голосов
/ 12 января 2012

Это ваши полные файлы классов?

Из кода STRUCTURE следует определять только в таблице res. Вы используете автоматическую генерацию DDL и видите, что она создана в res_images? Есть ли у вас какие-либо отношения к Resource_Image, который использует этот столбец? Когда вы сохраняете и возражаете, он пытается вставить в этот столбец?

...