[英]Replace single entity in query cache from JPA/Hibernate/EclipseLink?
[英]JPA Entity from Hibernate to EclipseLink
對不起我的英語不好
我在EclipseLink JPA中映射實體時遇到一些問題。 我有一些實體:
@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中映射此實體(我使用Eclipse RCP 4.x和Gemini DI),並且我有以下例外:
異常[EclipseLink-46](Eclipse Persistence Services-2.5.0.v20130507-3faac2b):org.eclipse.persistence.exceptions.DescriptorException異常描述:應該為主鍵字段[TSENSOR]定義一個非只讀映射。 .PSYSTEM。 描述符:RelationalDescriptor(watchdog.core.client.model.Sensor-> [DatabaseTable(TSENSOR)])
僅實體包含EmbeddedId的問題
該錯誤表明您應該有一個映射
@Column(name = "PSYSTEM", insertable = false, updatable = false)
String systemName;
可以寫入。 (非只讀)因此對PSYSTEM的另一種映射是true,可插入或可更新。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.