我已经编写了一个rest控制器,它接收请求并将数据保存在DB中。这是我的邮件请求,我试图发送使用邮递员。
{
"product_id" : "testproduct",
"default_concurrent":10,
"default_connections":1000,
"msan":10
}
我的实体类:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotBlank;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
@Entity
@Table(name="products")
@EntityListeners(AuditingEntityListener.class)
public class Product {
@Id
@Column(name="product_id", nullable = false)
private String product_id;
@Column(name="default_concurrent", nullable = true)
private int default_concurrent;
@Column(name="default_connections", nullable = true)
private int default_connections;
@Column(name="msan", nullable = true)
private int msan;
public String getProduct() {
return product_id;
}
public void setProduct(String product) {
this.product_id = product;
}
public int getDefault_concurrent() {
return default_concurrent;
}
public void setDefault_concurrent(int default_concurrent) {
this.default_concurrent = default_concurrent;
}
public int getDefault_connections() {
return default_connections;
}
public void setDefault_connections(int default_connections) {
this.default_connections = default_connections;
}
public int getMsan() {
return msan;
}
public void setMsan(int msan) {
this.msan = msan;
}
}
@PostMapping("/add")
public Product addProduct(@Valid @RequestBody Product product)
{
return productDao.saveProduct(product);
}
ids for this class must be manually assigned before calling save()
nested exception is org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.test.model.Product",
我在SO上浏览了很多与此错误相关的帖子,大多数都建议使用
@GeneratedValue(Strategy=GenerationType.auto)或@GeneratedValue(Strategy=GenerationType.Identity)
但是我不能使用它,因为我的主键将是字符串,我不能把它更改为long。
但是,如果我在数据库中多创建一个列作为'id',并相应地更新实体类,将'id'作为主键并尝试执行,那么我将在请求体中获得正确的值,并且它也将保存在数据库中。
需要帮助。
由于我们将下划线字符视为保留字符,因此强烈建议遵循标准Java命名约定(即,在属性名称中不使用下划线,而是使用camel大小写)。
医生
下划线_是Spring数据查询派生中的一个保留字符,可以允许手动描述属性路径。
private String product_id;
private int default_concurrent;
private int default_connections;
private int msan;
private String productId;
private int defaultConcurrent;
private int defaultConnections;
private int msan;
为了发现,我在IDE中粘贴了相同的代码,并发现实体Product缺少字段product_id的getter-setter。添加后,相同的代码将值保存到数据库中。但我仍然建议大家避免字段名称中的_in以避免进一步的问题,并遵循doc中的命名约定。在使用JPA时,例如findBy(实体中带有_in名称的东西),您可能会面临类似的问题
我在控制器[GET、POST和PUT]中编写了多个RESTendpoint。 接听和接听电话都很好。但当我试图点击来自Postman的PUT请求时,我的java控制器无法接收该请求。没有错误消息。响应主体为空。邮递员的回复代码是200。 以下是我的PUTendpoint,它无法从邮递员处获取请求: 下面是我的GETendpoint,它运行良好: 包含PUT请求标题和正文的邮递员URL为: 但是,系
我正在编写一个具有交叉源配置的API 我的websecurity配置有 控制器类 身份验证过滤器检查 匹配。匹配总是变假 我是不是漏掉了什么? 我添加了什么额外的参数吗? 期待着迅速的回应。
问题内容: 我使用Postman扩展程序发出GET请求并获得响应,但是如果我使用jQuery发出相同的请求,则会收到一个典型错误: XMLHttpRequest无法加载 http://www.rfen.es/publicacion/ranking/resultsBySwimmer.asp?l=020039535&t=&p=0&e=50L-I。所请求的资源上没有“ Access-Control-Al
这是我的密码-------- 当我尝试对.post(/register…)路由进行邮递员测试时,它会暂停加载几分钟,然后给出错误-- “无法得到任何响应 连接到 http://localhost:5000/api/users/register 时出错。为什么会发生这种情况: 服务器无法发送响应:确保后端正常工作 自签名 SSL 证书被阻止:通过在“设置”中关闭“SSL 证书验证”来解决此问题 请求
我正在考虑使用Postman来自动化我对REST API的测试,并且只使用了几天。到目前为止,我已经为我的初始集合创建了足够数量的请求。我还在请求前脚本、测试和请求正文中使用了全局、环境和集合变量。我希望控制请求中包含哪些属性,而无需复制同一请求的多个副本以排除某些属性。 例如,我有一个 JSON 请求正文,如下所示: 如果“OtherProperty”为空或为空,我想从请求中完全删除该属性。我只
我有几个c#API Post和Get方法调用MSSQL数据库。我创建了数据库的副本和带有第二个连接字符串的API的副本-指的是新数据库。 在本机postman中,对旧API的调用工作正常,我得到的结果是200,但对新API的调用不断返回状态400,响应正文以:“System. NullReection ceException”开头在chrome postman中,所有API(旧的和新的)都工作正常