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?