我有一个实体:
@Entity
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = Columns.ID)
private Long id;
// getter & setter
}
然后,我创建了一个实体MyEntity my = new MyEntity();
的实例,并希望使用DAO(使用Spring Data for JPA)保存它 - dao.save(my);
。我得到以下例外:
Caused by: Exception [EclipseLink-6023]
(Eclipse Persistence Services - 2.4.0.v20120608-r11652):
org.eclipse.persistence.exceptions.QueryException
Exception Description: The list of fields to insert into the table
[DatabaseTable(my_entity)] is empty.
You must define at least one mapping for this table.
Query: InsertObjectQuery(null)
当我向具有默认值
的实体添加另一个无用的列时private int nothing = 6;
异常消失。有什么解决方案吗?
This topic对我没有帮助。我使用EclipseLink + MySQL + Spring Data。
答案 0 :(得分:3)
这是因为您没有字段,并且正在使用生成的ID,因此无需插入任何内容。您需要添加另一个字段,或者需要使用TABLE ID生成而不是IDENTITY(我建议不要使用IDENTITY,因为它不支持预分配)。