为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:win10
【CPU】:
【问题描述】*:
抽象类
@Entity
@Table(name="topo_topores")
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="TOPORES_TYPE",
discriminatorType=DiscriminatorType.STRING, length=20)
@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
public abstract class CommonResourceInfo {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
protected int id;
...
子类
public class NMObject extends CommonResourceInfo implements Serializable{
private static final long serialVersionUID = 1L;
....
子类生成的数据库表Id不是自增的:
程序会报异常:
Caused by: org.hibernate.exception.GenericJDBCException: could not insert: [com.nm.nmm.res.NMObject]
。。。
。。。
Caused by: dm.jdbc.driver.DMException: 序列号无效
at dm.jdbc.driver.DBError.throwException(DBError.java:722)
at dm.jdbc.driver.DmdbPreparedStatement.prepareBindInParam(DmdbPreparedStatement.java:609)
如果手动修改则会报错:
自增列上不能有外键约束,你查一下id上是否有外键