Joda Time не имеет понятия интервала между LocalTimes, поэтому я сделал один:
public final class LocalInterval
{
private LocalTime start;
private LocalTime end;
..
Конечно, я также сделал поддержку Hibernate, сохранив местное время в виде двух свойств, "start" и "end":
public class PersistentLocalIntervalAsTime implements CompositeUserType, Serializable
{
public String[] getPropertyNames() {return new String[]{"start", "end"};}
...
В моем классе package-info.java я отобразил «LocalInterval»:
@TypeDef(
name = "LocalInterval",
typeClass = PersistentLocalIntervalAsTime.class
),
Так что теперь я просто хочу иметь список LocalInterval внутри MyClass:
@CollectionOfElements(targetElement=LocalInterval.class)
List<LocalInterval> intervals;
Hibernate не любит это и говорит, что не может определить тип. Итак, я попробовал:
@CollectionOfElements(targetElement=LocalInterval.class)
@Type(type="LocalInterval")
List<LocalInterval> intervals;
Это, по крайней мере, сгенерировало схему, но схема имеет:
create table myclass_intervals (
element time,
myclass varchar(40) not null
) ENGINE=InnoDb;
Это выглядит неправильно - разве у меня не должно быть двух столбцов TIME, "start" и "end", вместо одного столбца "TIME" "element"?