【发布时间】:2014-10-16 14:28:20
【问题描述】:
我正在尝试持久化 JAXB 生成的对象。这是示例结构:
@Column(name = "reporting_identifier")
private String reportingIdentifier;
@Column(name = "apply_quiet_time")
private boolean applyQuietTime;
@Embedded
private RecipientDetailsList recipientDetailsList;
下面是RecipientDetailsList类的结构:
@ElementCollection(targetClass=String.class)
private List<RecipientDetails> recipientDetails;
现在,RecipientDetails 类有一个参数构造函数,它接受一个字符串。我想将该字符串作为整个记录的一部分保留在数据库中。我看到了
org.hibernate.InstantiationException:没有实体的默认构造函数:RecipientDetailsList
尝试保存对象时出现异常。我有两个问题:
我们有解决这个异常的方法吗?我无法更改该类,因为它是为 JAXB 编组/解组而设计的。我可以在不改变结构的情况下以某种方式存储对象吗?另外,我有兴趣只存储引用的列表的第一条记录 recipientDetails 因为我只想要一行对象。如果它有超过 1 条记录,我希望它忽略其余记录。有可能吗?
将注解直接用于由 JAXB 生成的类中是否是好的设计?我是否应该创建另一个类(可能还有映射器/转换器)来存储和检索信息?
【问题讨论】:
标签: java hibernate annotations