Когда вы инициализируете массив в Java, он получает значение по умолчанию 0
для примитива int
:
int[] array = new int[MAX_SIZE];
Тот факт, что вы не видите желаемого ввода 1,2,3,4
, является отдельным проблема с вашим кодом Scanner
.
То, что Вы ищете, ряда элементов, который в стандарте hbm отображение является:
<set name="Roles" table="UserRoles">
<key column="UserID" />
<element column="Role" />
</set>
Для Быстрого NHibernate можно отобразить это как так:
HasMany<string>(x => x.Roles)
.AsElement("Role");
Вы, возможно, должны также указать ключевое использование имени WithKeyColumn(string)
.
Я полагаю, что это было бы
public User()
{
Id(x => x.UserID);
HasMany<UserRoles>(x => x.UserRoles).AsBag();
}
Необходимо будет также удостовериться, что Вы отображаете свой класс UserRoles также
Это также работало:
HasMany<Role>(u => u.Roles)
.WithTableName("UserRoles")
.Component(role => role.Map(r => r.Name))
.AsList();
Вы не должны отображать Роль или UserRoles.
Удостоверьтесь Ролевые реализации IEquatable < Role > ;.
FWIW это незначительно изменилось на сегодняшний день. Текущее отображение таково
HasMany<string>(x => x.Roles)
.Element("Role");