我将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);
我所有的列名都是红色的,并带有两个下划线的错误:
我检查了持久性和已分配的数据-该问题的最流行解决方案。我已经检查了方言-SQL Server。我检查了所有列名,没有看到任何错误。
要解决此问题,您可以这样做:
Database
中(在IDE的右侧)添加新数据库并连接到您的数据源。Persistence
(“ Intellij IDEa”的左下角,按Assign Data...
并在Data Source
中使用,不是默认来源,而是您的原始来源。File - Invalidate Caches / Restart
并选择蓝色按钮无效并重新启动]。P.S .:如果您对数据库中的表列使用俄语名称-将其写为@Column(name = "[...]")
,并在SQL @Query
中将N放在值之前,在“”中或在括号中写上名称。 但是最好的主意-仅使用英语!