我正在通过对话框尝试更新标记。但它显示错误。
这是我的名为Student的POJO类,我为此创建了一个表来更新标记。
@Entity
public class Student
{
@Id
private int sid;
@Column(length=10)
private String sname;
private int marks;
@Version
private int verson;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getsname() {
return sname;
}
public void setsname(String sName) {
this.sname = sName;
}
public int getMarks() {
return marks;
}
public void setMarks(int marks) {
this.marks = marks;
}
public int getVerson() {
return verson;
}
public void setVerson(int verson) {
this.verson = verson;
}
}
这是我的主要课程
public class ClientOfUser1 {
public static void main(String[] args)
{
Configuration conf=new Configuration().configure("hibernate.cfg.xml");
ServiceRegistry registry=new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build();
SessionFactory factory=conf.buildSessionFactory(registry);
Session session=factory.openSession();
Transaction tx=session.beginTransaction();
Student s=(Student)session.get(Student.class, 101);
String str=JOptionPane.showInputDialog("enter marks of (User1)");
int m= Integer.parseInt(str);
s.setMarks(m);
tx.commit();
session.close();
factory.close();
}
}
当我尝试执行此操作时,它显示另一个错误,错误是“STUDENT0 _”。“VERSON”:标识符无效
答案 0 :(得分:0)
问题中的信息太少了。请填写完整的错误消息,数据库表的结构等。
但是......我猜错了,你有一个错字......
你错过了我:
“STUDENT0 _”。“VERSON”:标识符无效
来自:
private int verson;
和各自的setter / getters。
我敢打赌你的数据库表有一个名为VERSION
的列。
答案 1 :(得分:0)
尝试放
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
在application.properties
中否则使用@Table注释
明确指定studaent表名和模式名称@Table(schema="...", name="...")