【发布时间】:2011-10-06 05:10:19
【问题描述】:
我有一张只有一列的表格。这是一个身份
如何使用 JPA 持久化它?
我试过 entityManager.persist(new OneColumnTable());
它会抛出一个 PersistenceException
Caused by: javax.persistence.PersistenceException: Exception [EclipseLink-6023] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.QueryException
Exception Description: **The list of fields to insert into the table [DatabaseTable(OneColumnTable)] is empty. You must define at least one mapping for this table.**
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.flush(EntityManagerImpl.java:747)
at com.sun.enterprise.container.common.impl.EntityManagerWrapper.flush(EntityManagerWrapper.java:418)
我该怎么做?
更新
@Entity
@Table(name = "OneColumnTable")
public class OneColumnTable implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "OneColumn")
private Integer oneColumn;
public OneColumnTable() {
}
public Integer getOneColumn() {
return oneColumn;
}
public void setOneColumn(Integer oneColumn) {
this.oneColumn= oneColumn;
}
}
表格
USE [myDB]
GO
/****** Object: Table [dbo].[OneColumnTable] Script Date: 07/15/2011 12:10:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[OneColumnTable](
[OneColumn] [bigint] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED
(
[OneColumn] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
【问题讨论】:
-
您想这样做似乎很奇怪。我还没有遇到可以理解
insert into OneColumnTable() values();的RDBMS。也许这里存在设计问题。 -
肯定是设计问题,但他们希望我这样做,所以我想知道是否有可能:(
-
许多 RDBMS 支持这样的声明......但请参阅下面的答案,有不同的 sintaxis
标签: java sql-server jpa jpql