what did i do something wrong???

36 views
Skip to first unread message

yang zhang

unread,
Oct 17, 2016, 6:24:22 AM10/17/16
to Ebean ORM
i use spring boot + mysql + eban 
but i got wrong when i insert to db

here is my code 

@MappedSuperclass
public class BaseModule extends Model {

@Id
private Long id;

@WhenCreated
private LocalDateTime createDate = LocalDateTime.now();

@WhenModified
private LocalDateTime updateDate = LocalDateTime.now();

@SoftDelete
private Boolean delete = false;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public LocalDateTime getCreateDate() {
return createDate;
}

public void setCreateDate(LocalDateTime createDate) {
this.createDate = createDate;
}

public LocalDateTime getUpdateDate() {
return updateDate;
}

public void setUpdateDate(LocalDateTime updateDate) {
this.updateDate = updateDate;
}

public Boolean getDelete() {
return delete;
}

public void setDelete(Boolean delete) {
this.delete = delete;
}

}

@Entity
@Table(name = "demo_no_paper")
public class TicketChecked extends BaseModule {

private String ticketCode;

private String movie;

private String hall;

private LocalDateTime movieTime;

private LocalDateTime checkedTime;

private String seatInfo;

private Boolean checked = false;

private String cinemaName;

public String getTicketCode() {
return ticketCode;
}

public void setTicketCode(String ticketCode) {
this.ticketCode = ticketCode;
}

public String getMovie() {
return movie;
}

public void setMovie(String movie) {
this.movie = movie;
}

public String getHall() {
return hall;
}

public void setHall(String hall) {
this.hall = hall;
}

public LocalDateTime getMovieTime() {
return movieTime;
}

public void setMovieTime(LocalDateTime movieTime) {
this.movieTime = movieTime;
}

public LocalDateTime getCheckedTime() {
return checkedTime;
}

public void setCheckedTime(LocalDateTime checkedTime) {
this.checkedTime = checkedTime;
}

public String getSeatInfo() {
return seatInfo;
}

public void setSeatInfo(String seatInfo) {
this.seatInfo = seatInfo;
}

public Boolean getChecked() {
return checked;
}

public void setChecked(Boolean checked) {
this.checked = checked;
}

public String getCinemaName() {
return cinemaName;
}

public void setCinemaName(String cinemaName) {
this.cinemaName = cinemaName;
}

@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("ticketCode", ticketCode)
.add("movie", movie)
.add("hall", hall)
.add("movieTime", movieTime)
.add("checkedTime", checkedTime)
.add("seatInfo", seatInfo)
.add("checked", checked)
.add("cinemaName", cinemaName)
.toString();
}

}

@Service
@Transactional(readOnly = true)
public class TicketService {

@Autowired
private EbeanServer ebeanServer;


@Transactional
public TicketChecked insert(TicketChecked ticketChecked) {
ebeanServer.save(ticketChecked);
return ticketChecked;
}

}


when i use the insert() method  i got the error message like this 

2016-10-17 18:13:19.486 [http-nio-8088-exec-1] TRACE org.avaje.ebean.TXN - txn[1001] Begin
2016-10-17 18:13:25.093 [http-nio-8088-exec-1] DEBUG org.avaje.ebean.SUM - txn[1001] ERROR executing DML bindLog[] error[sql injection violation, syntax error: ERROR. token : DELETE, pos : 144 : insert into demo_no_paper (ticket_code, movie, hall, movie_time, checked_time, seat_info, checked, cinema_name, create_date, update_date, delete) values (?,?,?,?,?,?,?,?,?,?,?)]
2016-10-17 18:13:25.094 [http-nio-8088-exec-1] TRACE org.avaje.ebean.TXN - txn[1001] Commit - query only
2016-10-17 18:13:25.128 [http-nio-8088-exec-1] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is javax.persistence.PersistenceException: ERROR executing DML bindLog[] error[sql injection violation, syntax error: ERROR. token : DELETE, pos : 144 : insert into demo_no_paper (ticket_code, movie, hall, movie_time, checked_time, seat_info, checked, cinema_name, create_date, update_date, delete) values (?,?,?,?,?,?,?,?,?,?,?)]] with root cause
com.alibaba.druid.sql.parser.ParserException: ERROR. token : DELETE, pos : 144
	at com.alibaba.druid.sql.parser.SQLExprParser.primary(SQLExprParser.java:587)
	at com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser.primary(MySqlExprParser.java:167)
	at com.alibaba.druid.sql.parser.SQLExprParser.expr(SQLExprParser.java:94)
	at com.alibaba.druid.sql.parser.SQLExprParser.exprList(SQLExprParser.java:903)
	at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseInsert(MySqlStatementParser.java:2014)
	at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseInsert(MySqlStatementParser.java:193)
	at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:199)
	at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:148)
	at com.alibaba.druid.wall.WallProvider.checkInternal(WallProvider.java:620)
	at com.alibaba.druid.wall.WallProvider.check(WallProvider.java:574)
	at com.alibaba.druid.wall.WallFilter.check(WallFilter.java:711)
	at com.alibaba.druid.wall.WallFilter.connection_prepareStatement(WallFilter.java:331)
	at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:509)
	at com.alibaba.druid.filter.FilterAdapter.connection_prepareStatement(FilterAdapter.java:961)
	at com.alibaba.druid.filter.FilterEventAdapter.connection_prepareStatement(FilterEventAdapter.java:176)
	at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:509)
	at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.prepareStatement(ConnectionProxyImpl.java:366)
	at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:467)
	at com.avaje.ebeaninternal.server.persist.dml.InsertHandler.getPstmt(InsertHandler.java:109)
	at com.avaje.ebeaninternal.server.persist.dml.InsertHandler.bind(InsertHandler.java:94)
	at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:69)
	at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.insert(DmlBeanPersister.java:50)
	at com.avaje.ebeaninternal.server.persist.DefaultPersistExecute.executeInsertBean(DefaultPersistExecute.java:54)
	at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeNow(PersistRequestBean.java:644)
	at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeOrQueue(PersistRequestBean.java:690)
	at com.avaje.ebeaninternal.server.persist.DefaultPersister.insert(DefaultPersister.java:449)
	at com.avaje.ebeaninternal.server.persist.DefaultPersister.insert(DefaultPersister.java:399)
	at com.avaje.ebeaninternal.server.persist.DefaultPersister.save(DefaultPersister.java:387)
	at com.avaje.ebeaninternal.server.core.DefaultServer.save(DefaultServer.java:1435)
	at com.avaje.ebeaninternal.server.core.DefaultServer.save(DefaultServer.java:1428)
	at com.baimes.service.TicketService.insert(TicketService.java:25)
	at com.baimes.web.TicketContorller.insert(TicketContorller.java:37)
	at sun.reflect.GeneratedMethodAccessor287.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:89)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
	at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:108)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)

did i do something wrong

Roland Praml

unread,
Oct 17, 2016, 4:39:58 PM10/17/16
to Ebean ORM
Rename the property "delete" as delete is a reserved sql keyword.

yang zhang

unread,
Oct 17, 2016, 9:31:19 PM10/17/16
to Ebean ORM
thanks

在 2016年10月18日星期二 UTC+8上午4:39:58,Roland Praml写道:
Reply all
Reply to author
Forward
0 new messages