JPA entity has no primary key?

database, ejb-3.0, entity, java, jpa

Solution

`JPA 2.0 Specification`

- Entity class must be annotated with the `Entity` annotation.

- Entity class must have a no-arg constructor.

- Entity class must not be final

- Entity class must implement the `Serializable` interfaces.

- Entity class must have a unique, immutable `ID`

Otherwise, you cannot.

Problem

I have an Entity class: ``` @Entity @Table(name="CMC_MAP_SERVER_INFO") @NamedQuery(name="CmcMapServerInfo.getMapServer", query="SELECT c FROM CmcMapServerInfo c") public class CmcMapServerInfo implements Serializable { private static final long serialVersionUID = 1L; @Column(name="APPLICATION_NAME") private String applicationName; private String remarks; @Column(name="SERVER_IP") private String serverIp; @Column(name="SERVER_NAME") private String serverName; @Column(name="SERVER_PORT") private short serverPort; public CmcMapServerInfo() { } ``` I get the following error: ``` Entity class [class cdot.oss.cmsat.conf.ejb.entity.CmcMapServerInfo] has no primary key specified. ``` I read online and found out that entities must have a primary key defined. But my table here is a ONE row table only. It just used to save system configuration. So only queries I will like to do will be to check if the row exists then get that row and update it. My columns are serverIp, port, name of the server. How should I proceed to remove this error?

Original source