JPA 可嵌入集合(@Embeddable)只能使用基本类型?

使用的是JPA的实现版本是eclipselink
现有两个类如下,在Embeddable中有一个VacationEntry的元素集合

@Data

@Entity

public class Embeddable {

@Id

private int id;

private String name;

@Temporal(TemporalType.TIMESTAMP)

private Date createTime;

@ElementCollection(targetClass = VacationEntry.class)

@CollectionTable(name = "VARCATION")

private List<VacationEntry> vacationBookings;

}

@Data

@Embeddable

public class VacationEntry implements Serializable {

private static final long serialVersionUID = 1L;

@Temporal(TemporalType.DATE)

private Calendar startDate;

@Basic(fetch = FetchType.LAZY)

@Lob

private byte[] bytes;

private boolean flag;

private int size;

@Column(name = "days")

private String daysTaken;

}

问题是在VacationEntry类的字段除了基本类型外,其它类型全部映射成了数据库表中的varchar(255)的字段表结构如下
表结构我是用JPA自动生成的
图片描述

按常理来说startDate应该对应数据库的日期类型,bytes应该对象数据库的BLOB类型或CLOB类型才对我想问这种情况是一个bug呢?还是说可嵌入对象就是有这样的限制,有没有解决办法?

以上是 JPA 可嵌入集合(@Embeddable)只能使用基本类型? 的全部内容, 来源链接: utcz.com/p/175202.html

回到顶部