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