我有一个问题,我该怎么做才能在 Spring 用第一个大写字母识别我的表,它是用 postgresql 制作的
@Entity
@Table(name="System_user")
public class Dashboard {
@Id
@Column(name = "username")
String username;
get..
set...
}
它会产生一个错误,我将其更改为如下所示
@Table("\"System_user\"")
可是他还是不认识我
最佳答案
正如我们在评论中所讨论的,问题是方言。
目前最新方言 - org.hibernate.dialect.PostgreSQL95Dialect
问题解决了这个方言:
<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
回答您的 HQL 代码:
我建议使用 TypedQuery,因为它不仅会返回一个列表,还会返回您的对象列表。
此外,您正在使用同一个 session 来传输数据。这对程序不利。总是喜欢 Open session - transfer data - close session
.
试试这段代码:
public List<Vw_dh_assay> listAssayReport(double year, String project_id, String hole_id) {
List<Vw_dh_assay> list = new ArrayList<>();
Session session;
try {
session = this.sessionFactory.openSeesion();
TypedQuery<Vw_dh_assay> query = session.createQuery("from Vw_dh_assay where year = :year AND project_id = :project_id AND hole_id = :hole_id", Player.class);
query.setParameter("year", year);
query.setParameter("project_id", project_id);
query.setParameter("hole_id", hole_id);
list = query.getResultList();
System.out.println(list);
session.clear();
session.close();
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
关于spring - 我如何让 spring 使用 postgresql 识别第一个大写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57829387/