Персистентность Java / JPA: @Column по сравнению с @Basic

Ссылочная страница linux.org объясняет механику, но не объясняет ни одной мотивации позади нее :-(

Для этого, видит Компоновщик Sun и Руководство Библиотек

, Кроме того, отмечает, что "внешнее управление версиями" является в основном устаревшим на Linux, потому что управление версиями символа (расширение GNU) позволяет Вам иметь несколько несовместимых версий той же функции для присутствования в единственной библиотеке. Это расширение позволило glibc иметь ту же внешнюю версию: libc.so.6 в течение прошлых 10 лет.

114
задан Hosam Aly 9 September 2009 в 04:22
поделиться

2 ответа

  • @Basic означает, что атрибут должен быть сохранен, и должно использоваться стандартное отображение. У него есть параметры, которые позволяют вам указать, должен ли атрибут загружаться лениво и допускать ли его значение NULL.

  • @Column позволяет вам указать имя столбца в базе данных, в котором должен быть сохранен атрибут.

Если вы укажете одно без другого, вы получите поведение по умолчанию, которое является разумным, поэтому обычно люди используют только один, за исключением особых случаев.

Итак, если бы мы хотели отложить загрузку атрибута и указать столбец имя, которое мы можем сказать

 @Basic(fetch=FetchType.LAZY)
 @Column(name="WIBBLE")

Если бы нам нужно было по умолчанию неленивое поведение, тогда было бы достаточно @Column .

142
ответ дан 24 November 2019 в 02:34
поделиться

Помимо ответа @ djna , стоит отметить, что @Basic следует сравнить с @OneToMany , @ManyToOne и @ManyToMany . Для любого свойства можно указать только один из них.

@Column и @JoinColumn могут быть указаны вместе с любым из них для описания свойств столбца базы данных.

Это два набора аннотаций, которые можно использовать вместе, но одновременно можно использовать только одну аннотацию каждого набора.

48
ответ дан 24 November 2019 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: