Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 自定义复合类型的休眠列表_Hibernate - Fatal编程技术网

Hibernate 自定义复合类型的休眠列表

Hibernate 自定义复合类型的休眠列表,hibernate,Hibernate,Joda Time没有本地时间间隔的概念,所以我做了一个: public final class LocalInterval { private LocalTime start; private LocalTime end; .. 当然,我也支持Hibernate,将本地时间存储为两个属性,“开始”和“结束”: 在我的package-info.java类中,我映射了“LocalInterval”: 现在我只想在MyClass中有一个LocalInterval列表: @Collect

Joda Time没有本地时间间隔的概念,所以我做了一个:

public final class LocalInterval
{
  private LocalTime start;
  private LocalTime end;
  ..
当然,我也支持Hibernate,将本地时间存储为两个属性,“开始”和“结束”:

在我的package-info.java类中,我映射了“LocalInterval”:

现在我只想在MyClass中有一个LocalInterval列表:

@CollectionOfElements(targetElement=LocalInterval.class)
List<LocalInterval> intervals;

这看起来不对——我不应该有两个时间列“开始”和“结束”,而不是一个时间列“元素”?

显然,您必须明确指示休眠应该使用多个列:

@CollectionOfElements(targetElement=LocalInterval.class)
@Type(type="LocalInterval")
@Columns(columns={@Column(name="start"), @Column(name="end")})
List<LocalInterval> intervals;
@collectionFelements(targetElement=LocalInterval.class)
@类型(Type=“LocalInterval”)
@列(列={@Column(name=“start”),@Column(name=“end”)})
列出时间间隔;

我不知道为什么Hibernate不能通过查询PersistentLocalIntervalAsTime自动解决这个问题,或者至少抛出一个错误,而不是创建一个默认的单列。

显然,您必须明确地向Hibernate指示应该使用多个列:

@CollectionOfElements(targetElement=LocalInterval.class)
@Type(type="LocalInterval")
@Columns(columns={@Column(name="start"), @Column(name="end")})
List<LocalInterval> intervals;
@collectionFelements(targetElement=LocalInterval.class)
@类型(Type=“LocalInterval”)
@列(列={@Column(name=“start”),@Column(name=“end”)})
列出时间间隔;
我不知道为什么Hibernate不能通过查询PersistentLocalIntervalAsTime自动解决这个问题——或者至少抛出一个错误,而不是创建一个默认的单列

@CollectionOfElements(targetElement=LocalInterval.class)
@Type(type="LocalInterval")
List<LocalInterval> intervals;
create table myclass_intervals (
  element time,
  myclass varchar(40) not null
) ENGINE=InnoDb;
@CollectionOfElements(targetElement=LocalInterval.class)
@Type(type="LocalInterval")
@Columns(columns={@Column(name="start"), @Column(name="end")})
List<LocalInterval> intervals;