gpt4 book ai didi

java - Hibernate 返回另一个对象

转载 作者:行者123 更新时间:2023-12-01 16:01:35 25 4
gpt4 key购买 nike

我有一个如下所示的查询

Document document = DocDAO.getSession().read(someId);
MyFile file = (MyFile) DAO.getSession()
.createQuery("SELECT file FROM MyFile file WHERE file.document = :document AND file.version = :version")
.setParameter("document", document)
.setParameter("version", version)
.uniqueResult();

现在,我应该得到一个文件,其中 file.getDocument().getId() == someId,并且 someId 是 BigInteger。但不幸的是,他们并不平等。什么样的错误会导致查询的实体不是我要查找的实体?

干杯

尼克

最佳答案

BigInteger 是一个对象,而不是基元。您可能需要执行 bigInt1.equals(bigInt2) 而不是 bigInt1 == bigInt2

编辑:
也许我错了。 Javadoc 说:

BigInteger provides analogues to all of Java's primitive integer operators

再次编辑:如果您想取消 BigInteger,请尝试将 JPA 实体属性声明为 Long(如果不可为空,则声明为 long),然后使用 @Column 注释来定义实际的数据库列结构(如果需要)。以下是此注释的示例:

@Column(updatable = false, name = "MY_DB_COLUMN", nullable = false, length=12)
private long myEntityAttribute;

我不记得当列是数字时如何使用length属性。最大位数?您可以查找 @Column 的详细信息并进行实验,直到获得正确结果。

关于java - Hibernate 返回另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3737641/

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