gpt4 book ai didi

java - OpenJPA HSQLdb - 如何处理 ID

转载 作者:行者123 更新时间:2023-11-30 05:12:23 26 4
gpt4 key购买 nike

我在使用 OpenJPA 和 HSQLdb 处理数据库表的 ID 时遇到问题。我创建了一个抽象类,在其中处理注释和要重新映射到数据库中的内容:

// Property accessors
@Id
@Column(name = "IDTESTOBJEKT", unique = true, nullable = false)
public Integer getIdtestobjekt() {
return this.idtestobjekt;
}

public void setIdtestobjekt(Integer idtestobjekt) {
this.idtestobjekt = idtestobjekt;
}

它作为用于创建 Testobjects 的 Facade。

Testobjekt test_obj = new Testobjekt();
test_obj.setEigentuemerin("helge");
// test_obj.setIdtestobjekt(1);

EntityManagerHelper.beginTransaction();
TestobjektDAO test_dao = new TestobjektDAO();
test_dao.save(test_obj);
EntityManagerHelper.commit();

List<Testobjekt> foo;

foo = test_dao.findByEigentuemerin("helge");

Testobjekt from_db = foo.get(0);
System.out.println(from_db.getEigentuemerin());

尽管如此,我设置了...1,什么都没有...我收到错误。喜欢:

Field "model_layer.AbstractTestobjekt.idtestobjekt" of "model_layer.Testobjekt@3209fa8f" can not be set to "null" value.

我希望 ORM 层能够处理 ID 的东西而不打扰我。我对 Hibernate 的经验是它可以很好地处理这些事情......但 OpenJPA 在这里似乎很麻烦。我认为我的注释是错误的或其他什么,但我无法跟踪这个多层问题。

我在 persistence.xml 中配置了 OpenJPA:

<persistence-unit name="HSQLdb_mvn_openJPA_autoTablesPU"
transaction-type="RESOURCE_LOCAL">
<provider>
org.apache.openjpa.persistence.PersistenceProviderImpl
</provider>
<class>model_layer.Testobjekt</class>
<class>model_layer.AbstractTestobjekt</class>
<properties>
<property name="openjpa.ConnectionDriverName"
value="org.hsqldb.jdbc.JDBCDriver" />
<property name="openjpa.ConnectionURL"
value="jdbc:hsqldb:hsql://localhost:9001/mydb" />
<property name="openjpa.ConnectionUserName" value="SA" />
<property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema(ForeignKeys=true)" />
</properties>
</persistence-unit>

如何使用 OpenJPA 处理自动 ID 策略?

谢谢,愿望

最佳答案

How do I handle an automated ID strategy with OpenJPA?

使用@GenerateValue注释(我建议使用默认的GenerationType.AUTO策略,该策略表明持久性提供者应该为特定的情况选择适当的策略数据库):

@Id 
@GeneratedValue
@Column(name = "IDTESTOBJEKT", unique = true, nullable = false)
public Integer getIdtestobjekt() {
return this.idtestobjekt;
}

关于java - OpenJPA HSQLdb - 如何处理 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2950984/

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