Я пытаюсь сопоставить класс, который выглядит следующим образом:Hibernate карты класса как еще один
public class Skills {
private int[] levels; // 10 elements
}
Теперь отображение массива в Hibernate является большой болью, и как у меня не было никакой удачи вообще делать что перед , Я пробую другой подход. Каждый из 10 элементов фактически представляет собой мастерство. Подумайте об этом как ATK, STR, DEX, INT и т. Д. Из-за нескольких ограничений дизайна он должен использоваться как массив, иначе я бы просто добавил к нему 10 полей.
Настоящая боль заключается в сопоставлении, что в SQL, чтобы иметь больше смысла. Конечно, Hibernate может выполнять сериализацию класса, но это сверлит байты в столбцы. Теперь мне интересно, есть ли способ указать что-то вроде CompoundUserType (я могу сказать «эй, вот как будет выглядеть таблица, и это каждое значение поля!»), Или указать, что я каким-то образом хочу для обеспечения подкласса Skills $ Hbm, который содержит что-то по адресу
class Hbm {
private int atk, str, dex, Int... ;
}
, чтобы я мог получить приятный стол? Я довольно не знаю, что такое жизнеспособный подход.
Могу я узнать, почему вы создаете массив уровней в таблице навыков. Вместо этого вы нормализуете его, создавая новую таблицу уровней, где вы можете хранить информацию о разных уровнях навыков и хранить ссылку уровня в таблице навыков: (т.е. навыки публичного класса {частный уровень уровня;) ) –
Итак, поле должно быть массивом? Не можете ли вы объявить его как «Список» и добавить геттер и сеттер, которые работают с массивом? –