2014-09-17 2 views
0

В моей таблице элементов, у меня есть столбец перечислимого, чтобы описать состояние этого элемента:Hibernate IllegalArgumenetException на перечисления колонка

@Enumerated(EnumType.STRING) 
@Column(name="status") 
private ItemStatus status; 

Тогда, когда я пункт добавлен в корзину, я хочу перечислить все пункт в корзине с этим запросом:

select i.* from item as i inner joint cart as c on i.item_id = c.item_id 
where c.owner_id=:owner_id group by i.item_id 

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

select i.*, u.* from item as i inner join cart as c on i.item_id = c.item_id 
inner join customer as u on i.owner_id = u.customer_id 
where c.owner_id = :owner_id group by i.item_id, u.customer_id 

SQLQuery query = session.createSQLQuery(queryname); 
List<Object[]> result = query.addEntity(Item.class) 
           .addEntity(Customer.class) 
           .setParameter("owner_id", owner_id) 
           .list(); 

С вторым запросом я получил неизвестное значение имени для перечисления класса на колонке статуса. Интересно, почему в первом запросе есть исключение, кроме второго. И каков правильный способ получить столбец перечисления в спящем режиме?

Это мое перечисление класс

public enum ItemStatus { 
ACTIVE, UNAVAILABLE; 
} 

ответ

0

Вы не должны также добавить Cart сущность?

List<Object[]> result = query.addEntity(Item.class) 
           .addEntity(Cart.class) 
           .addEntity(Customer.class) 
           .setParameter("owner_id", owner_id) 
           .list(); 
+0

Я только хочу получить информацию о товаре и информацию о владельце этого предмета, так зачем мне добавлять объект Cart? Я попытался запустить второй запрос на pgAdmin, и результат будет таким, каким я ожидал. Поэтому я думаю, что я применил hibernate SQLquery некорректно –

+0

да, вы правы. можете ли вы поделиться своим классом enum? –

+0

Я только что обновил свой класс enum –

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