- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 hibernate 在我的 MySQL 数据库中插入一个条目。但我收到 IllegalArgumentException。id 是我数据库中的主键,我检查了自动增量选项。
org.hibernate.property.access.spi.PropertyAccessException: Error accessing field [public int com.nexus.tutorial.Items.id] by reflection for persistent property [com.nexus.tutorial.Items#id] : Items [name=test, price=20.0, lagerstand=5, anfver=ankauf, position=0,0,0]
...
...
...
Caused by: java.lang.IllegalArgumentException: Can not set int field com.nexus.tutorial.Items.id to com.nexus.tutorial.Items
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:58)
at sun.reflect.UnsafeIntegerFieldAccessorImpl.getInt(UnsafeIntegerFieldAccessorImpl.java:56)
at java.lang.reflect.Field.getInt(Field.java:574)
at org.hibernate.property.access.spi.GetterFieldImpl.get(GetterFieldImpl.java:62)
public class HibernateUpdate {
public static void update(Items item) {
SessionFactory factory = new Configuration()
.configure("C:\\Users\\N3XUS\\AppData\\\\Roaming\\.minecraft\\config\\hibernate.cfg.xml")
.addAnnotatedClass(Items.class)
.buildSessionFactory();
Session session = factory.getCurrentSession();
try {
System.out.println("Creating new Items");
session.beginTransaction();
//List<Items> itemList = session.createQuery("from Items").list();
session.save(item);
session.getTransaction().commit();
}finally {
factory.close();
}
}
}
这是我调用方法的方式:
HibernateUpdate.update(new Items("test", 20.00, 5,"ankauf","0,0,0"));
这是我的模型:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="items")
public class Items {
@Id
@Column(name="id")
public int id;
@Column(name="name")
public String name;
@Column(name="price")
public double price;
@Column(name="lagerstand")
public int lagerstand;
@Column(name="anfver")
public String anfver;
@Column(name="position")
public String position;
public Items() {
}
public Items(String name, double price, int lagerstand, String anfver, String position) {
this.name = name;
this.price = price;
this.lagerstand = lagerstand;
this.anfver = anfver;
this.position = position;
}
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 double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getLagerstand() {
return lagerstand;
}
public void setLagerstand(int lagerstand) {
this.lagerstand = lagerstand;
}
public String getAnfver() {
return anfver;
}
public void setAnfver(String anfver) {
this.anfver = anfver;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
@Override
public String toString() {
return "Items [name=" + name + ", price=" + price + ", lagerstand=" + lagerstand + ", anfver=" + anfver
+ ", position=" + position + "]";
}
}
我知道修饰符应该是私有(private)的。我正在使用来自 maven-repository 的 JDBC 和 hibernate 的最新版本。
compile 'org.hibernate:hibernate-agroal:5.3.10.Final'
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.15'
最佳答案
您必须使用 GeneratedValue
来确保您的 id 是自动递增的:
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
public int id;
在此之后您的 ID 将自动递增,您可以添加您的项目:
HibernateUpdate.update(new Items("test", 20.00, 5,"ankauf","0,0,0"));
Advice: your attributes in preference must be private or protected and from getter and setter you can access to them.
关于java - Hibernate:java.lang.IllegalArgumentException:无法设置 int 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55956513/
在使用客户端应用程序和OAuth2授权服务器时出现错误。我用的是Spring。我已经设置了授权服务器、资源服务器和客户端。使用cURL时,授权服务器和资源服务器工作正常。但是,当我为客户端编写设置(包
在使用客户端应用程序和OAuth2授权服务器时出现错误。我用的是Spring。我已经设置了授权服务器、资源服务器和客户端。使用cURL时,授权服务器和资源服务器工作正常。但是,当我为客户端编写设置(包
我希望你能找到我的文字,因为我真的对我的项目感到困惑,因为应用程序不能安装在模拟器中。我希望你的建议和指导。这是运行应用程序时的日志记录。RegisterViewModel.kt。密封的类资源.kt。
我正在尝试制作按钮,单击它们时会播放声音。但我有一个麻烦。我实在搞不清楚。这是我的代码: import javafx.application.Application; import javafx.ev
我正在查看一些遗留代码,发现一个部分导致我得到“比较方法违反了其一般契约!”错误。我知道这个错误是代码不具有传递性的结果,但我不完全理解如何正确修复它。 这是导致错误的代码。 private void
运行以下方法时,我不断收到 IllegalArgumentException: public int randomize(ArrayList list){ Random rdm = new R
我想给 Jenkins 添加一个新的 slave。当我遵循 Jenkins UI 时,它给了我下面的命令 java -jar agent.jar -jnlpUrl http:///computer//
我正在使用运行时反射来加载一个包含以下两个方法的类: public static void foo(int[] args) { System.out.print("foo invoked: "
我已经使用以下查询来匹配所有文档 { "query": { "custom_score": { "query": { "query_string": {
我有这个命令: list.stream() .filter(e -> ...) .sorted(comparatorShuffle()) .findAny() .orE
我收到以下运行时错误: checkParameterIsNotNull, parameter oneClickTokens at com.info.app.fragments.Fragmen
我有两个列表: (def xxa ["olp" "xyz"]) (def xxb ["ulove" "alove" "holp" "sholp"]) 还有一个函数尝试获取第一个列表的元素,这些元素是第
在我的代码中,我在向服务器执行请求的行中捕获了 IllegalArgumentException(索引 85 处查询中的非法字符)。使用 was build as patter 命令,另一个任务正确完
我试图将 String[] 放入 jsonObject 并收到以下错误 java.lang.IllegalArgumentException: Invalid type of value. Type:
我过去的一个试卷问题要求我修改一个方法,以导致发生 IllegalArgumentException。 该方法仅涉及从银行帐户余额中提取资金 这是执行此操作的方法。 公共(public)无效提款(双倍
我这里遇到了一点问题。我想弄清楚如何捕获 IllegalArgumentException。对于我的程序,如果用户输入负整数,程序应该捕获 IllegalArgumentException 并询问用户
每当插件尝试运行此延迟的任务时,我都会收到“ IllegalArgumentException:插件不能为空”错误: Bukkit.getServer().getScheduler().sched
我有这个命令: list.stream() .filter(e -> ...) .sorted(comparatorShuffle()) .findAny() .orE
我在更改应用程序中的场景时遇到问题,看起来像 Main screen > Login screen 我在主文件中将屏幕存储为 hashmap一切都很好,直到我从登录屏幕返回到主屏幕并想再次加载登录屏幕
我在这里缺少什么? 我得到异常:java.lang.IllegalArgumentException:对象不是声明类的实例 public boolean onSave(Object entity,Se
我是一名优秀的程序员,十分优秀!