gpt4 book ai didi

java - JPA 给自己惹麻烦

转载 作者:可可西里 更新时间:2023-11-01 08:37:26 25 4
gpt4 key购买 nike

我正在使用 JPA/EclipseLink,它抛出这个异常

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'NAME' in 'field list'

下面是生成的查询:

Call: SELECT id, DTYPE, fullname, NAME, code FROM PERSON WHERE ((accountId = ?) AND (DTYPE = ?)) bind => [1, Employee]

其中

@Entity
@Table(name = "PERSON")
public class Person
implements Serializable {
....

@Column(name = "fullname", nullable = false)
public String getFullName() {
return this.fullName;
}

public void setFullName(String fullName) {
this.fullName = fullName;
}
....
}

@Entity
@Table(name="EMPLOYEE")
@PrimaryKeyJoinColumn(name="personId")
public class Employee
extends Person
implements Serializable {

....

@Column(name="code")
public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}
}

我在 PERSON 表和 EMPLOYEE 表上都没有 NAME 列,为什么它会随便将该列添加到查询中并为自己(和我)造成问题?

--- 已编辑 -----我在 PERSONEMPLOYEE 实体中都没有任何 name 属性或成员或与该词类似的东西。

最佳答案

NAME 看起来像是默认设置(因为您似乎将字段名称设置为小写),因此请检查 Person 类中的 getName/setName 方法。您使用的是 orm.xml 文件吗?

如果还是找不到问题,将EclipseLink日志记录转为Finest:并在部署前/部署阶段检查日志。 Person 和 Employee 类的 EclipseLink 处理应该显示它确定应该有一个 NAME 字段的原因。

关于java - JPA 给自己惹麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7830996/

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