Как заставить Hibernate вызывать мой собственный typedef?

Я пытаюсь определить CompositeUserType для обработки определенного типа в моем приложении JPA / Hibernate. У меня есть CompositeUserType под названием ApplicationMessageType, который предназначен для обработки моего сопоставления.

Согласно тому, что я прочитал, я смогу создать класс package-info.java в моей иерархии доменов, содержащий TypeDefs. Мой выглядит так:

@TypeDefs({
    @TypeDef(
        defaultForType = ApplicationMessage.class,
        typeClass = ApplicationMessageType.class
    )
})
package mptstp.domain;

import mptstp.domain.messages.ApplicationMessage;

import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;

Если я правильно понимаю, тот факт, что я использую параметр defaultForType для TypeDef, каждый раз, когда я пытаюсь сохранить или загрузить ApplicationMessage, должен вызываться код настраиваемого типа.

I ' Мы установили точки останова для каждого метода в классе ApplicationMessageType, и ни один из них никогда не вызывается.

Кто-нибудь знает, где я ошибся? Код компилируется, но похоже, что аннотации TypeDef никогда не вызывались для регистрации ApplicationMessageType.

Любые указатели были бы очень признательны ... 100 1,50 250 3,00 500 5,00 1000 8,50 30000 12,50 Я ...

У меня есть таблица, содержащая расценки на доставку и максимальный вес, например:

max_weight     shipping_cost
100            1.50
250            3.00
500            5.00
1000           8.50
30000          12.50

Я хочу иметь возможность получить стоимость доставки на основе веса заказа, где вес меньше max_weight в таблице. Таким образом, если вес равен 410, стоимость доставки будет 5,00, если вес 2000, доставка будет 12,50 и т. Д.

Использование max_weight> = '". $ Weight."' doesn ' t работает, поскольку он просто возвращает первый max_weight , который больше веса, например, вес 683 возвращает 12,50 в качестве стоимости доставки.

Как убедиться, что он получает правильный max_weight ?

6
задан Dan 28 September 2010 в 18:40
поделиться