休眠注释:实体没有默认构造函数
2022-09-01 14:08:42
我正在尝试持久化 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;
现在,该类有一个参数构造函数,它接受一个 String。我想将该字符串作为整个记录的一部分保留在数据库中。我看到RecipientDetails
org.hibernate.InstantiationException: No default constructor for entity: RecipientDetailsList
异常,当我尝试保存一个对象。我有两个问题:
我们是否有任何解决此异常的方法?我无法更改该类,因为它是为 JAXB 编组/取消元组化而设计的。我可以在不改变结构的情况下以某种方式存储对象吗?另外,我感兴趣的是只存储收件人详细信息引用的列表的第一条记录,因为我只想要一行用于对象。我希望它忽略其余的记录,如果它有超过1条记录。可能吗?
这种好的设计是将注释直接用于JAXB生成的类中吗?我是否应该创建另一个类(以及可能的映射器/转换器)来存储和检索信息?