Java JPA实体从Hibernate到EclipseLink
对不起,我的英语不好 我对EclipseLink JPA中的映射实体有一些问题。 我有一些实体:Java JPA实体从Hibernate到EclipseLink,java,hibernate,eclipselink,Java,Hibernate,Eclipselink,对不起,我的英语不好 我对EclipseLink JPA中的映射实体有一些问题。 我有一些实体: @Entity @Table(name = "TSENSOR") @Cacheable public class Sensor extends Model implements Serializable { @EmbeddedId SensorIdentifier key; @Column(name = "CDESCRIPTION", columnDefinition = "
@Entity
@Table(name = "TSENSOR")
@Cacheable
public class Sensor extends Model implements Serializable {
@EmbeddedId
SensorIdentifier key;
@Column(name = "CDESCRIPTION", columnDefinition = "TEXT")
String description;
@Column(name = "CTYPE")
@Enumerated(EnumType.STRING)
SensorType type;
...
}
@Embeddable
public class SensorIdentifier extends DeviceIdentifier {
@Column(name = "PNUM")
byte num;
...
}
@Embeddable
@MappedSuperclass
public class DeviceIdentifier extends Model implements Serializable {
@Column(name = "PSYSTEM", insertable = false, updatable = false)
String systemName;
@Column(name="PDEVICEID")
int id;
@Column(name="PDEVICESUBID")
short subId;
...
}
在服务器端,该实体映射到Hibernate JPA中,并且工作出色。但在客户端上,我需要在EclipseLink JPA中映射这个实体(我使用EclipseRCP4.x和Gemini DI),我有一个例外:
异常[EclipseLink-46](Eclipse持久性服务)-
2.5.0.v20130507-3faac2b):org.eclipse.persistence.exceptions.DescriptorException异常
描述:应该为该映射定义一个非只读映射
主键字段[TSENSOR.PSYSTEM]。描述符:
RelationalDescriptor(watchdog.core.client.model.Sensor-->
[数据库表(TSENSOR)])
只有实体包含EmbeddedId时才会出现此问题。错误说明应该为该实体创建一个映射
@Column(name = "PSYSTEM", insertable = false, updatable = false)
String systemName;
可以写信给我。(非只读)
因此,PSYSTEM的另一个映射为insertable或updatable on true。错误表明您应该为PSYSTEM设置一个映射
@Column(name = "PSYSTEM", insertable = false, updatable = false)
String systemName;
可以写信给我。(非只读)
因此,PSYSTEM的另一个映射为insertable或updatable on true