在springboot上编写查询

时间:2018-03-26 06:44:10

标签: mysql hibernate spring-boot spring-data-jpa

由于某些特定的目的,我必须在springboot上编写一个查询但是我试图使用传递的值来编写查询但是它给出了大量的错误,我确信这不是方法。我已经浏览了@Query的Jpa和springboot文档,但没有发现任何有用的东西。那么如何编写这种类型的查询?

@Query("INSERT into LaganikartaDetails(?1)values(?2)")
void setValuesExcel(String headingValues, String fieldValues);

4 个答案:

答案 0 :(得分:1)

Referring this, https://docs.spring.io/spring-data/jpa/docs/1.5.0.RELEASE/reference/html/jpa.repositories.html

@Modifying
@Query("update User u set u.firstname = ?1 where u.lastname = ?2")
int setFixedFirstnameFor(String firstname, String lastname);

try 
@Query("INSERT into LaganikartaDetails =?1 values=?2")
void setValuesExcel(String headingValues, String fieldValues);

答案 1 :(得分:0)

使用insert方法,您可以使用存储库保存方法。它将使用存储库方法自动保存您尝试保存的任何对象。在这里,我将共享一个用于模拟插入数据库的代码片段,

library(shiny)
library("tm")
library("SnowballC")  
library("wordcloud")
library("RColorBrewer")
library(memoise)


 shinyServer(function(input, output, session) {


 terms <- reactive({

 output$plot <- renderPlot({

in1  <- input$file2 

text <- readLines(in1)
docs <- Corpus(VectorSource(text))

toSpace <- content_transformer(function (x , pattern ) gsub(pattern, " ", 
 x))
docs <- tm_map(docs, toSpace, "/")
docs <- tm_map(docs, toSpace, "@")
docs <- tm_map(docs, toSpace, "\\|")
docs <- tm_map(docs, content_transformer(tolower))
docs <- tm_map(docs, removeNumbers)
docs <- tm_map(docs, removeWords, stopwords("dutch"))
docs <- tm_map(docs, removePunctuation)
docs <- tm_map(docs, stripWhitespace)

dtm <- TermDocumentMatrix(docs)
m <- as.matrix(dtm)
v <- sort(rowSums(m),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)
head(d, 10)

wordcloud(words = d$word, freq = d$freq, min.freq = 1, scale = c(2,0.5),
         max.words=200, random.order=FALSE, rot.per=0.35, 
         colors=brewer.pal(8, "Dark2"))

这里driverRepo是在这里自动装配的存储库对象。你提到调用.save方法的对象数据。这是spring数据JPA存储库方法。您不需要使用插入查询。

答案 2 :(得分:0)

您可以通过以下查询手动插入

@Query("INSERT into LaganikartaDetails =? values=?")
void setValuesExcel(String headingValues, String fieldValues);

答案 3 :(得分:0)

如果需要在实体中保留的字段是动态的,则可以创建一个映射器类来检查输入属性是否为null或为空,然后在实体中进行设置。最后,您可以调用entity.save()。

例如:

员工具有属性名称,工资,年龄,联系电话 你可以像下面这样写 if(StringUtils.isNotBlank(name){ employee.setName(name); }

与其他字段类似,最后对所有字段完成此操作后,您可以调用employee.save()