Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/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
Java 为什么生成表_seq,尽管我没有指定它_Java_Openjpa - Fatal编程技术网

Java 为什么生成表_seq,尽管我没有指定它

Java 为什么生成表_seq,尽管我没有指定它,java,openjpa,Java,Openjpa,我正在使用OpenJPA2.2.2,我的persistence.xml如下 <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns

我正在使用OpenJPA2.2.2,我的persistence.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="PU" transaction-type="RESOURCE_LOCAL">
    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>

    <class>package.User</class>

    <properties>
        <property name="openjpa.ConnectionURL" value="jdbc:postgresql://localhost:5432/postgres" />
        <property name="openjpa.ConnectionDriverName" value="org.postgresql.Driver" />
        <property name="openjpa.ConnectionUserName" value="postgres" />
        <property name="openjpa.ConnectionPassword" value="****" />

        <property name="openjpa.DynamicEnhancementAgent" value="true" />
        <property name="openjpa.RuntimeUnenhancedClasses" value="supported" />

        <property name="openjpa.Log" value="SQL=TRACE" />
        <property name="openjpa.ConnectionFactoryProperties" value="PrettyPrint=true, PrettyPrintLineLength=72, PrintParameters=true, MaxActive=10, MaxIdle=5, MinIdle=2, MaxWait=60000" />

        <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
    </properties>
</persistence-unit>
尽管创建了seq_表,但并没有创建sequence(原生的)。如何使用内置序列修复它我正在使用postgreSQL。我也不明白为什么每次PK都是前一次PK的+50

我也不明白为什么每次PK都是前一次PK的+50


每次PK都比前一次高+50的原因很可能是因为你经常?创建新的EntityManagerFactory。每次创建一个新的EMF时,默认情况下,它都会返回到序列表以获得一批新的50个键。每次扔掉EMF时,任何未使用的键都会被扔掉。

请不要将RuntimeUnhancedClass设置为supported。此外,如果您通读OpenJPA页面中有关增强的内容,那么从长远来看,您会更加快乐。。。。dynamicene代理很快就可以开始了,但我不会长期保留它@瑞克,我试过一次。经过一周的阅读不可读的文档后,我放弃了。这对我来说太难了,所以我使用它是因为它是工作。我100%理解…只是当你因为使用该功能而遇到错误时,不要感到不安。很抱歉,迟到了,请接受。您是对的,每当我在servlet上下文中更改任何内容时,都会重新加载并丢弃未使用的值。但在生产环境中不会发生。
@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private long id;
    ...