2012-01-11 5 views
0

Мой класс «Resource_Image» - это подкласс ресурса, и все работает так, как ожидалось, но в моей базе данных обе таблицы содержат столбец «СТРУКТУРА». Зачем? Использование setRs в экземпляре Resource_Image устанавливает Resource_Structure на суперкласс, но почему у меня есть столбец «СТРУКТУРА» в таблице «res_images» тоже, это не имеет смысла? См. Код внизу. Есть идеи?JPA - отключить наследование на подклассе

@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 
} 

ответ

0

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

Из кода СТРУКТУРА следует определять только в таблице res. Используете ли вы автоматическое создание DDL и видите, что оно создано в res_images? Есть ли у вас отношения с Resource_Image, которые используют этот столбец? Когда вы упорствуете и подвергаете объекту, он пытается вставить в этот столбец?

+0

Это только отрывок вовлеченных свойств/классов. СТРУКТУРА и сеттеры/геттеры были определены только в таблице res. Но он отображается в базе данных по res и res_image (да, я использую автоматическую генерацию DLL). После сохранения этот столбец является нулевым в таблице res_image и правильно устанавливается в таблице res. Столбец STRUCTURE в res_image полностью бесполезен, но доступен. По-моему, столбец создан из-за возможности перезаписать это свойство, есть ли способ сказать JPA «это свойство существует только в суперклассе, а не может быть перезаписано»? –

Смежные вопросы