2014-02-16 6 views
0

Я вернулся в Stackoverflow, задаваясь вопросом, какая разница между значениями внутри и внутри файла hbm.xml Hibernate.Hibernate - <property> значения против <column> значения

Я объясняю себе немного лучше:

<property column="LOGIN_NAME" generated="insert" lazy="false" name="loginName" not-null="true" type="java.lang.String" unique="true"> 
    <column length="128" name="LOGIN_NAME" not-null="true" sql-type="VARCHAR(128)" unique="true"/> 
</property> 

В приведенном выше примере я повторяю некоторые значения, такие как not-null, unique или column-name в обоих <property> и <column>. Мой вопрос (ы) есть, в чем разница? Какой из них должен/должен быть определен?

ответ

1

Нет требования иметь оба тега для одного и того же представления. Вместо того, чтобы писать то, как вы написали выше, это способ написать его.

<property column="LOGIN_NAME" generated="insert" lazy="false" name="loginName" not-null="true" type="java.lang.String" unique="true" sql-type="VARCHAR(128)" length="128"> 
</property> 

Тег столбца является частью самого тега свойства. Вам нужно только определить его один раз. Не требуется добавлять такие же свойства снова и снова.

+0

Спасибо! Я очень ценю ответ! – kazbeel

+0

Воспользовавшись своими знаниями ... Вот еще один быстрый вопрос :) Стоит ли определять тип sql? Не связывает ли это поле с конкретной БД? Я имею в виду, например, тип «BIT» является эксклюзивным для MySQL ... – kazbeel

+1

Это зависит от вашего варианта использования. Как правило, мы не используем sql-type для определения типов столбцов. – Abhishek

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