无法使用 Microsoft SQL 服务器和 Javax.Persistence 解析 Java 中的列 [name]
Cannot resolve column [name] in Java using Microsoft SQL Server and Javax.Persistence
我的一个 类 将 SQL 服务器数据库中的 table 转换为实体。
@Id
@Column(name = "[primary_key]")
private int id;
@Column(name = "[id Employee]")
private byte[] employeeId;
@Column(name = "[Period]")
private Date period;
@Column(name = "[Credit amount]")
private float creditAmount;
@Column(name = "[Type]")
private String type;
@Column(name = "[Weight 585]")
private float weight585;
和它的 CrudRepo(部分):
@Query(value = "select sum([Weight 585]) from [ZOK per period] where ([Period] between ?1 and ?2) " +
"and ([id Employee] = ?3) and ([Type] = 'Gold')", nativeQuery = true)
Double getSumZokGold(Date start, Date end, byte[] employeeId);
我所有的列名都是红色的并且带有下划线,有两个错误:
- 无法解析列“”;
- 未知的数据库函数'';
我检查了已分配的持久性和数据 - 它是该问题最流行的解决方案。我已经检查了方言 - SQL 服务器。我检查了所有列名,没有发现任何错误。
要解决这个问题你可以这样做:
- 检查所有列名 - 是的,问题可能就在其中。 顺便说一句,如果它是真的,你会得到一个错误。
- 在
Database
(右侧 IDE 侧)添加新数据库并连接到您的数据源。
- 检查您的
Persistence
("Intellij IDEa" 中的左下角),按 Assign Data...
并在 Data Source
中使用不是默认来源,而是您的来源。
- 如果您已经连接数据库(例如 MS 服务器)- 重新连接。是的,它也很有用。
- 现在,如果您的问题仍然困扰您 - 打开
File - Invalidate Caches / Restart
并选择蓝色按钮 无效并重新启动。
P.S.: 如果您在数据库中为 table 列使用俄语名称 - 将它们写为 @Column(name = "[...]")
并在 SQL @Query
中输入 N在“”中的值之前或在括号中写入名称。 但最好的办法是只使用英语!
我的一个 类 将 SQL 服务器数据库中的 table 转换为实体。
@Id
@Column(name = "[primary_key]")
private int id;
@Column(name = "[id Employee]")
private byte[] employeeId;
@Column(name = "[Period]")
private Date period;
@Column(name = "[Credit amount]")
private float creditAmount;
@Column(name = "[Type]")
private String type;
@Column(name = "[Weight 585]")
private float weight585;
和它的 CrudRepo(部分):
@Query(value = "select sum([Weight 585]) from [ZOK per period] where ([Period] between ?1 and ?2) " +
"and ([id Employee] = ?3) and ([Type] = 'Gold')", nativeQuery = true)
Double getSumZokGold(Date start, Date end, byte[] employeeId);
我所有的列名都是红色的并且带有下划线,有两个错误:
- 无法解析列“”;
- 未知的数据库函数'';
我检查了已分配的持久性和数据 - 它是该问题最流行的解决方案。我已经检查了方言 - SQL 服务器。我检查了所有列名,没有发现任何错误。
要解决这个问题你可以这样做:
- 检查所有列名 - 是的,问题可能就在其中。 顺便说一句,如果它是真的,你会得到一个错误。
- 在
Database
(右侧 IDE 侧)添加新数据库并连接到您的数据源。 - 检查您的
Persistence
("Intellij IDEa" 中的左下角),按Assign Data...
并在Data Source
中使用不是默认来源,而是您的来源。 - 如果您已经连接数据库(例如 MS 服务器)- 重新连接。是的,它也很有用。
- 现在,如果您的问题仍然困扰您 - 打开
File - Invalidate Caches / Restart
并选择蓝色按钮 无效并重新启动。
P.S.: 如果您在数据库中为 table 列使用俄语名称 - 将它们写为 @Column(name = "[...]")
并在 SQL @Query
中输入 N在“”中的值之前或在括号中写入名称。 但最好的办法是只使用英语!