我的数据库中有一个名为“Group”的tabe。 这是我的型号代码:
@Entity
@Table(name="Group")
public class Group {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="group_id")
private int id;
@Column(name="name")
private String name;
@Column(name="color")
private String color;
public Group(){
this(null,null);
}
public Group(String name, String color){
this.name=name;
this.color=color;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
我正在尝试使用以下方法从数据库中检索数据:
Session session=mainApp.getSessionFactory().openSession();
groupList=FXCollections.observableArrayList(session.createCriteria(Group.class).list());
groupPicker.setItems(groupList);
session.close();
但它给了我一个错误(SQL error or missing database (near "Group": syntax error)
)。我知道它正在发生,因为hibernate生成类似于此的查询:SELECT * FROM Group
。要正常工作,它应该是:SELECT * FROM "Group"
,但我不知道如何实现这一目标。
答案 0 :(得分:1)
在尝试了几种不同的方法之后,我终于想出了一个有效的解决方案。我刚刚将模型的表名改为:@Table(name="\"Group\"")
。
答案 1 :(得分:0)
如果您以某种方式使用XML您可能对元素 delimited-identifiers 感兴趣,以强制引用所有实体。可以找到更多Hibernate, MySQL and table named "Repeat" - strange behaviour