无法使用 Microsoft SQL Server 和 Javax.Persistence 解析 Java 中的列 [n



我的一个类,它将SQL Server数据库中的表转换为实体。

@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);

我所有的列名都是红色的,并带有两个错误的下划线:

  1. 无法解析列 '';
  2. 未知数据库函数 '';

我检查了持久性和已分配的数据 - 这是此问题最流行的解决方案。我已经检查了方言 - SQL Server。我检查了所有列名称,没有看到任何错误。

要解决此问题,您可以执行以下操作:

  1. 检查所有列名称 - 是的,问题可能只在于其中。顺便说一下,如果它是真的,你将有一个错误。
  2. Database(IDE 右侧(添加新数据库并连接到数据源。
  3. 检查您的Persistence("Intellij IDEa"的左下角(,按Assign Data...并在Data Source不是默认源中使用,而是完全属于您的源。
  4. 如果您已经连接了数据库(例如 MS 服务器( - 重新连接。是的,它也很有用。
  5. 现在,如果您的问题仍然困扰着您 - 打开File - Invalidate Caches / Restart并选择蓝色按钮无效并重新启动

PS:如果您在数据库中为表列使用俄语名称 - 将它们写为@Column(name = "[...]")在 SQL 中@Query将 N 放在 " 中的值之前或在括号中写名称。但最好的主意 - 只使用英语!

相关内容

  • 没有找到相关文章

最新更新