Как сделать отображенное поле наследованным от переходного процесса суперкласса в JPA?

Это должно сработать, но не самая «чистая» реализация:

Мне пришлось вытащить df из блеска, чтобы ваш код работал. Использовал assign для замены df в глобальной среде (не лучшая идея ...) после редактирования данных. Но данные не пересчитываются до нажатия Run. После нажатия Run данные модели перезаписываются: (modelData <- df). Опять же, не самая лучшая идея, вероятно, создание реактивного modelData будет лучшей идеей.

Также взгляните на DT::replaceData. Это может быть лучшей идеей, чем восстановление полного стола.

library(shiny)
library(DT)
library(dplyr)

df <- data.frame(Channel = c("A", "B","C"),
                 Current = c(2000, 3000, 4000),
                 Modified = c(2500, 3500,3000),
                 New_Membership = c(450, 650,700),
                 stringsAsFactors = FALSE)

#### Module 1 renders the first table
tableMod <- function(input, output, session, modelRun,modelData,budget){


  observeEvent( input$x1_cell_edit, {
    cat ('input$x1_cell_edit \n')
    info = input$x1_cell_edit
    str(info)
    i = info$row
    j = info$col
    v = info$value
    df[i, j] <- DT:::coerceValue(v, df[i, j])
    assign("df", df, envir = .GlobalEnv)

  })

  output$x1 <- DT::renderDataTable({
    modelRun()
    modelData <- df
    isolate(
      datatable(
        modelData %>% 
          mutate(New_Membership  = as.numeric(Modified * 0.01)*(budget())),
        selection = 'none', editable = TRUE
      )
    )
  })


}
tableUI <- function(id) {
  ns <- NS(id)
  dataTableOutput(ns("x1"))
}

ui <- function(request) {
  fluidPage(
    tableUI("opfun"),
    numericInput("budget_input", "Total Forecast", value = 2),
    actionButton("opt_run", "Run")
  )
}
server <- function(input, output, session) {

  callModule( tableMod,"opfun",
              modelRun = reactive(input$opt_run),
              modelData = df,
              budget = reactive(input$budget_input))

  observeEvent(input$opt_run, {
    cat('HJE')
  })
}

shinyApp(ui, server, enableBookmarking = "url")
10
задан Russ Hayward 9 August 2009 в 23:00
поделиться

1 ответ

У меня есть найдена причина не работает AttributeOverride. При аннотировании класса вы должны включить идентификатор встроенного объекта в поле имени. Я делал это:

@Entity
@AttributeOverride(name = "location", column = @Column(name = "location", insertable = false, updatable = false)
class SubClass extends BaseClass {

Когда это было необходимо:

@Entity
@AttributeOverride(name = "data.location", column = @Column(name = "location", insertable = false, updatable = false)
class SubClass extends BaseClass {

Странно то, что изменение поля имени @ Column работало с первой версией, но вставляемые и обновляемые поля игнорировались. Я не знаю, является ли это ошибкой или тонкостью спецификации JPA.

В любом случае,

5
ответ дан 4 December 2019 в 03:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: