как сохранить значение массива с помощью Hibernate - PullRequest
1 голос
/ 20 апреля 2010

У меня есть бин типа string [], который имеет два или более значений. Я хочу сохранить массив:

user.setItem(item[i]);
session.beginTransaction();
session.save(user);
session.getTransaction().commit();  

Но я получаю только один сохраненный элемент данных, а не весь массив.

1 Ответ

3 голосов
/ 20 апреля 2010

Если вы используете аннотацию, выполните следующие действия (используйте список вместо массива)

@Entity
public class User {

    private List<String> itemList = new ArrayList<String>();

    @CollectionOfElements
    @JoinTable(name="TABLE_ITEM")
    private List<String> getItemList() {
        return this.itemList;
    }

}

И сделать следующее

User user = (User) sessionFactory.openSession().get(User.class, userId);

user.getItemList().add(item);

Поскольку у вас есть управляемый экземпляр сущности (пользователь), а жизненный цикл экземпляра типа значения (ваш список строк) связан с жизненным циклом его экземпляра сущности-владельца (пользователь). Hibernate сохранит ваш новый предмет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...