【发布时间】:2020-08-31 11:50:29
【问题描述】:
我遇到了一个错误,我不确定为什么选择类型的数量与插入的数量不匹配。 我有请求实体,有 3 个值。计费周期、开始日期和结束日期。 我尝试在插入时添加 0,但仍然不起作用。
更新:我的日期是字符串。它应该是日期类型。我将 SELECT 更改为 VALUES。 我得到了新的错误: 无法解析的日期:“Tue Jan 15 00:00:00 SGT 2013”
我的插入方法
@Override
@Transactional
public void insertRequest(Request request) {
try {
DateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd" );
DateFormat inputFormat = new SimpleDateFormat("E MMM dd HH:mm:ss Z
yyyy");
Date sdate = outputFormat.parse(request.getStart_date()) ;
Date edate= outputFormat.parse(request.getEnd_date()) ;
String sqlQuery;
sqlQuery = "INSERT INTO Request "
+ "(billing_cycle, start_date, end_date) VALUES ("
+
+ request.getBilling_cycle() +", "
+ "'"+ sdate +"', "
+ "'"+ edate+"')";
Query query = entityManager.createQuery(sqlQuery);
query.executeUpdate();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我的价值观
{
"billing_cycle":"1",
"start_date":"Tue Jan 15 00:00:00 SGT 2013",
"end_date":"Thu Feb 14 00:00:00 SGT 2013"
}
我的实体
@Entity
@Table(name="request")
public class Request {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="request_id")
private int request_id;
@Column(name="billing_cycle")
private int billing_cycle;
@Column(name="start_date", columnDefinition="Date")
private String start_date;
@Column(name="end_date", columnDefinition="Date")
private String end_date;
错误:
Unparseable date: "Tue Jan 15 00:00:00 SGT 2013"
at java.base/java.text.DateFormat.parse(DateFormat.java:395)
【问题讨论】:
-
请将您的代码和堆栈跟踪添加为文本。
-
我更新了,请检查
-
createQuery方法用于创建JPQL查询,我认为它不支持INSERT语句。还有为什么在Request对象已经可用时需要使用INSERT语句。可以试试entityManager.persist(request)
标签: json spring hibernate web hql