gpt4 book ai didi

jpa - 具有自定义默认值的 EclipseLink JPA 主键

转载 作者:行者123 更新时间:2023-12-02 15:56:18 26 4
gpt4 key购买 nike

我的 SQL Server 数据库中有一个表,其中主键字段使用 NEWID() 定义为默认值。期望客户端不需要传递主键字段值,SQL Server 将处理它。

在 JPA 定义模型类时,我必须使用生成类型定义此 ID 字段。我尝试了 IDENTITY、TABLE 和 SEQUENCE 生成器。不幸的是我收到错误为

Exception Description: Error preallocating sequence numbers.  
The sequence table information is not complete..

我的坚持。 XML如下

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="LOB_Webservice" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.xyz.lob.model.jpa.OrderDetail</class>
<class>com.xyz.lob.model.jpa.OrderHeader</class>
<shared-cache-mode>NONE</shared-cache-mode>
<properties>
<property name="jboss.as.jpa.providerModule" value="org.eclipse.persistence"/>
<property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost:1433;databaseName=LOB_INT" />
<property name="javax.persistence.jdbc.user" value="sa" />
<property name="javax.persistence.jdbc.password" value="*******" />
<property name="eclipselink.logging.level" value="FINE"/>
<property name="eclipselink.sharedCache.mode" value="None"/>
<property name="eclipselink.jdbc.cache-statements" value="false" />
<property name="eclipselink.query-results-cache" value="false"/>
<property name="eclipselink.logging.exceptions" value="true"/>
<property name="eclipselink.weaving" value="static"/>
</properties>
</persistence-unit>

我的模型类如下

@Entity
public class OrderHeader implements Serializable {
@Id
@Basic(optional = false)
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="OrderId")
private String orderId;
...
}

最佳答案

嗨@Joe2013不确定是否仍然是一个问题,但是当使用表生成器并且您没有指定 Eclipse Link 根据您的对象模型生成模式时,您必须手动创建表并插入相应的行生成器及其初始值。否则它将无法工作,并且您将收到您提到的错误。

关于jpa - 具有自定义默认值的 EclipseLink JPA 主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18529186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com