由于表的名称,无法从SQLite数据库中检索数据。(Hibernate)

时间:2015-05-05 20:05:32

标签: database hibernate sqlite

我的数据库中有一个名为“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",但我不知道如何实现这一目标。

2 个答案:

答案 0 :(得分:1)

在尝试了几种不同的方法之后,我终于想出了一个有效的解决方案。我刚刚将模型的表名改为:@Table(name="\"Group\"")

答案 1 :(得分:0)

如果您以某种方式使用XML您可能对元素 delimited-identifiers 感兴趣,以强制引用所有实体。可以找到更多Hibernate, MySQL and table named "Repeat" - strange behaviour