Morphia,MongoDB,Q类和执行更新

时间:2019-06-06 21:30:41

标签: mongodb querydsl morphia

我有一个使用MongoDB的大型Spring Boot项目。大多数工作是使用Spring Data存储库类完成的。这些很棒。但是有时候我想做一些Spring Data仓库接口不容易支持的事情。在那种情况下,我使用RepositoryCutomInterface添加其他方法。一切都很好。现在,我正在使用自动连接到RepositoryCustomInterface的MongoOperations对象。有了那个MongoOperations对象,我就可以继续做我想做的事情。

但是,由于它的类型安全性和其他优点,我真的很想使用Morphia。 我在项目中进行了设置,它正在生成Q类并为我创建一个数据存储区和Morphia。我已经成功地将RepositoryCustomInterface中的内容用于各种查询。

我想做的是弄清楚如何执行更新。我详细阅读了Morphia文档,而MongoDB上的这一节却没有提到进行更新。

例如,我想这样做:

ParamExpression

但这不是有效的代码。 set()方法需要一个imageCapture.deleted,而BooleanPath是一个<?xml version="1.0" encoding="UTF-8"?> <?import com.jfoenix.controls.JFXButton?> <?import java.lang.String?> <?import java.net.URL?> <?import javafx.geometry.Insets?> <?import javafx.scene.control.Label?> <?import javafx.scene.image.Image?> <?import javafx.scene.image.ImageView?> <?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.HBox?> <?import javafx.scene.layout.VBox?> <?import javafx.scene.text.Font?> <AnchorPane prefWidth="356.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1"> <children> <VBox prefHeight="243.0" prefWidth="356.0" spacing="2.0" stylesheets="@../styles/Containers.css" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <children> <AnchorPane prefHeight="31.0" prefWidth="356.0"> <children> <HBox prefHeight="35.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"> <padding> <Insets bottom="8.0" top="8.0" /> </padding> <children> <ImageView fitHeight="25.0" fitWidth="25.0" pickOnBounds="true" preserveRatio="true"> <HBox.margin> <Insets left="10.0" /> </HBox.margin> <image> <Image url="@../icons/icons8_Calendar_100px.png" /> </image> </ImageView> <Label fx:id="lblFecha" prefHeight="31.0" prefWidth="306.0" stylesheets="@../styles/Strings.css" text="---- ----, -----"> <HBox.margin> <Insets left="15.0" /> </HBox.margin> <styleClass> <String fx:value="h4" /> <String fx:value="principal" /> </styleClass> </Label> </children> </HBox> </children> </AnchorPane> <AnchorPane> <children> <HBox prefHeight="35.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"> <children> <ImageView fitHeight="25.0" fitWidth="25.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="@../icons/icons8_Clock_100px.png" /> </image> <HBox.margin> <Insets left="10.0" /> </HBox.margin> </ImageView> <Label fx:id="lblHora" prefHeight="31.0" prefWidth="306.0" stylesheets="@../styles/Strings.css" text="-- : -- : -- --"> <HBox.margin> <Insets left="15.0" /> </HBox.margin> <styleClass> <String fx:value="h4" /> <String fx:value="principal" /> </styleClass> </Label> </children> <padding> <Insets bottom="8.0" top="8.0" /> </padding> </HBox> </children> </AnchorPane> <AnchorPane fx:id="opcParlking"> <children> <JFXButton alignment="BASELINE_LEFT" graphicTextGap="25.0" onAction="#openParking" prefHeight="35.0" prefWidth="366.0" styleClass="h4" text="Parking" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"> <graphic> <ImageView fitHeight="25.0" fitWidth="25.0" pickOnBounds="true" preserveRatio="true" translateX="10.0"> <image> <Image url="@../icons/icons8_Tollbooth_100px.png" /> </image> </ImageView> </graphic> <font> <Font name="System Bold" size="12.0" /> </font> <padding> <Insets bottom="8.0" top="8.0" /> </padding> <stylesheets> <URL value="@../styles/Buttons.css" /> <URL value="@../styles/Strings.css" /> </stylesheets> </JFXButton> </children> </AnchorPane> <AnchorPane> <children> <JFXButton alignment="BASELINE_LEFT" graphicTextGap="25.0" prefHeight="35.0" prefWidth="363.0" styleClass="h4" text="Tipo de vehiculos" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"> <graphic> <ImageView fitHeight="25.0" fitWidth="25.0" pickOnBounds="true" preserveRatio="true" translateX="10.0"> <image> <Image url="@../icons/icons8_Traffic_Jam_96px.png" /> </image> </ImageView> </graphic> <font> <Font name="System Bold" size="12.0" /> </font> <padding> <Insets bottom="8.0" top="8.0" /> </padding> <stylesheets> <URL value="@../styles/Buttons.css" /> <URL value="@../styles/Strings.css" /> </stylesheets> </JFXButton> </children> </AnchorPane> <AnchorPane> <children> <JFXButton alignment="BASELINE_LEFT" graphicTextGap="25.0" prefHeight="35.0" prefWidth="363.0" styleClass="h4" text="Usuarios" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"> <graphic> <ImageView fitHeight="25.0" fitWidth="25.0" pickOnBounds="true" preserveRatio="true" translateX="10.0"> <image> <Image url="@../icons/icons8_User_Groups_100px.png" /> </image> </ImageView> </graphic> <font> <Font name="System Bold" size="12.0" /> </font> <padding> <Insets bottom="8.0" top="8.0" /> </padding> <stylesheets> <URL value="@../styles/Buttons.css" /> <URL value="@../styles/Strings.css" /> </stylesheets> </JFXButton> </children> </AnchorPane> <AnchorPane> <children> <JFXButton alignment="BASELINE_LEFT" graphicTextGap="25.0" prefHeight="35.0" prefWidth="361.0" styleClass="h4" text="Clientes" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"> <graphic> <ImageView fitHeight="25.0" fitWidth="25.0" pickOnBounds="true" preserveRatio="true" translateX="10.0"> <image> <Image url="@../icons/icons8_Helping_Hand_104px.png" /> </image> </ImageView> </graphic> <font> <Font name="System Bold" size="12.0" /> </font> <padding> <Insets bottom="8.0" top="8.0" /> </padding> <stylesheets> <URL value="@../styles/Buttons.css" /> <URL value="@../styles/Strings.css" /> </stylesheets> </JFXButton> </children> </AnchorPane> <AnchorPane> <children> <JFXButton alignment="BASELINE_LEFT" graphicTextGap="25.0" prefHeight="35.0" prefWidth="361.0" styleClass="h4" text="Reportes" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"> <graphic> <ImageView fitHeight="25.0" fitWidth="25.0" pickOnBounds="true" preserveRatio="true" translateX="10.0"> <image> <Image url="@../icons/icons8_Combo_Chart_104px.png" /> </image> </ImageView> </graphic> <font> <Font name="System Bold" size="12.0" /> </font> <padding> <Insets bottom="8.0" top="8.0" /> </padding> <stylesheets> <URL value="@../styles/Buttons.css" /> <URL value="@../styles/Strings.css" /> </stylesheets> </JFXButton> </children> </AnchorPane> <AnchorPane> <children> <JFXButton alignment="BASELINE_LEFT" graphicTextGap="25.0" prefHeight="29.0" prefWidth="356.0" styleClass="h4" text="Configuraciones" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"> <graphic> <ImageView fitHeight="25.0" fitWidth="25.0" pickOnBounds="true" preserveRatio="true" translateX="10.0"> <image> <Image url="@../icons/icons8_Automation_100px.png" /> </image> </ImageView> </graphic> <font> <Font name="System Bold" size="12.0" /> </font> <padding> <Insets bottom="8.0" top="8.0" /> </padding> <stylesheets> <URL value="@../styles/Buttons.css" /> <URL value="@../styles/Strings.css" /> </stylesheets> </JFXButton> </children> </AnchorPane> </children> </VBox> </children> </AnchorPane>

我看到可以从数据存储区创建UpdateOperations。但是,这似乎没有使用Q类。

我到处搜索过,但找不到精品,我想知道这是否可行。 欢迎任何建议。

0 个答案:

没有答案