Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
保持记录增量jpa sqlite sqlite_Sqlite_Eclipselink - Fatal编程技术网

保持记录增量jpa sqlite sqlite

保持记录增量jpa sqlite sqlite,sqlite,eclipselink,Sqlite,Eclipselink,我的问题是,当我保存一个有住所的人时,个人记录的id是1,地址是2,当我保存另一个记录时,个人的id是3,住所是4,所以增加了,我想增加,因为它应该是记录谁是1,注册的prox 1是2,接下来的3和3,等等 然后我留下实体的源代码、main、要保留的方法以及创建表时给我控制台的东西。我正在使用netbeans 7.4和EclipseLink库jpa2.1以及用于sqlite dirver的jdbc @实体 公共类角色实现可序列化{ 受保护的静态最终长serialVersionUID=1L; @身

我的问题是,当我保存一个有住所的人时,个人记录的id是1,地址是2,当我保存另一个记录时,个人的id是3,住所是4,所以增加了,我想增加,因为它应该是记录谁是1,注册的prox 1是2,接下来的3和3,等等

然后我留下实体的源代码、main、要保留的方法以及创建表时给我控制台的东西。我正在使用netbeans 7.4和EclipseLink库jpa2.1以及用于sqlite dirver的jdbc

@实体
公共类角色实现可序列化{
受保护的静态最终长serialVersionUID=1L;
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私人长id;
私有字符串名称;
@OneToOne(级联=级联类型.ALL)
私人住所;
公众人物(){
}
公共角色(字符串名称){
this.nombre=nombre;
住所=新住所();
}
公共住所{
返回住所;
}
公共无效设置住所(domincilio domincilio){
this.domincilio=domincilio;
}
公共字符串getNombre(){
返回nombre;
}
public void setNombre(字符串nombre){
this.nombre=nombre;
}
公共长getId(){
返回id;
}
公共无效集合id(长id){
this.id=id;
}
实体住所:

@实体
公共类Domicilio实现了可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私人长id;
私有字符串调用方;
公屋{
}
公共住所(字符串被调用){
this.calle=calle;
}
公共字符串getCalle(){
返回被叫方;
}
public void setCalle(字符串被调用){
this.calle=calle;
}
公共长getId(){
返回id;
}
公共无效集合id(长id){
this.id=id;
}
方法,该方法位于用于保存记录的PersonalJPAcontroller类中

public void guardar(){
人物角色=新的人物角色(“天使”);
persona.getDomicilio().setCalle(“alpatacal”);
创建(角色);
}
这是我的主要节目

公共类PrueBantidades{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
EntityManagerFactory emf=Persistence.createEntityManagerFactory(“pruebaentidadesPU”);
EntityManager em=emf.createEntityManager();//创建表
PersonalJPA控制器p=新的PersonalJPA控制器(Persistence.createEntityManagerFactory(“PrueBaentidEspu”);
p、 瓜达尔();
}
}
这就是我创建表时的控制台

[EL Info]: 2014-01-03 17:27:01.189--ServerSession(24979675)--EclipseLink, version: Eclipse Persistence Services - 2.5.1.v20130918-f2b9fc5 [EL Info]: connection: 2014-01-03 17:27:01.379--Not able to detect platform for vendor name [SQLite3]. Defaulting to [org.eclipse.persistence.platform.database.DatabasePlatform]. The database dialect used may not match with the database you are using. Please explicitly provide a platform using property eclipselink.platform.class.name. [EL Info]: connection: 2014-01-03 17:27:01.446--ServerSession(24979675)--file:/C:/Users/VM/Desktop/Mis Proyectos/Proyectos Netbeans/pruebaentidades/build/classes/_pruebaentidadesPU login successful [EL Warning]: 2014-01-03 17:27:01.6--ServerSession(24979675)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.1.v20130918-f2b9fc5): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLException: near "CONSTRAINT": syntax error Error Code: 0 Call: ALTER TABLE PERSONA ADD CONSTRAINT FK_PERSONA_DOMICILIO_ID FOREIGN KEY (DOMICILIO_ID) REFERENCES DOMICILIO (ID) Query: DataModifyQuery(sql="ALTER TABLE PERSONA ADD CONSTRAINT FK_PERSONA_DOMICILIO_ID FOREIGN KEY (DOMICILIO_ID) REFERENCES DOMICILIO (ID)") [EL Info]:2014-01-03 17:27:01.189——服务器会话(24979675)——EclipseLink,版本:Eclipse持久性服务-2.5.1.v20130918-f2b9fc5 [EL Info]:连接:2014-01-03 17:27:01.379--无法检测供应商名称的平台[SQLite3]。默认为[org.eclipse.persistence.platform.database.DatabasePlatform]。使用的数据库方言可能与您使用的数据库不匹配。请使用属性eclipselink.platform.class.name显式提供平台。 [EL Info]:连接:2014-01-03 17:27:01.446——服务器会话(24979675)——文件:/C:/Users/VM/Desktop/Mis Proyectos/Proyectos Netbeans/pruebaentidades/build/classes/\u pruebaentidadesPU登录成功 [EL Warning]:2014-01-03 17:27:01.6——服务器会话(24979675)——异常[EclipseLink-4002](Eclipse持久性服务-2.5.1.v20130918-f2b9fc5):org.Eclipse.Persistence.exceptions.DatabaseException 内部异常:java.sql.SQLException:靠近“约束”:语法错误 错误代码:0 调用:ALTER TABLE PERSONA ADD CONSTRAINT FK_PERSONA_domincilio_ID外键(domincilio_ID)引用domincilio(ID) 查询:DataModifyQuery(sql=“ALTER TABLE PERSONA ADD CONSTRAINT FK\u PERSONA\u domincilio\u ID外键(domincilio\u ID)引用domincilio(ID)”)
对于那些有同样问题的人,我想说,问题的解决方案是为每个表创建一个序列,并使用策略生成序列。 为每个实体添加这些语句,允许我为每个表创建一个序列

实体角色:

@GeneratedValue(策略=GenerationType.SEQUENCE,generator=“PERS_SEQ”) @SequenceGenerator(name=“PERS_SEQ”,sequenceName=“PERS_SEQ”)

实体住所:

@GeneratedValue(策略=GenerationType.SEQUENCE,generator=“DOM_SEQ”)
@SequenceGenerator(name=“DOM_-SEQ”,sequenceName=“DOM_-SEQ”)

我想您可能需要注意“
无法检测供应商名称的平台[SQLite3]。默认为[org.eclipse.persistence.platform.database.DatabasePlatform]。使用的数据库方言可能与您正在使用的数据库不匹配。请在该日志跟踪中使用属性eclipselink.platform.class.name显式提供平台…