当前位置: 首页 > 知识库问答 >
问题:

我们可以将@autowired分配与@oneToone

应安国
2023-03-14

将 User1 Bean 注入 Order1 类时出错 我正在使用@autowire@onetoMany是否允许?我添加了订单1.java,用户1.java,pom.xml和错误

        package com.simplilearn.mediCare.entities;
           import java.time.LocalDateTime;
           import java.util.ArrayList;
           import java.util.HashSet;
           import java.util.List;
           import java.util.Set;
           import javax.persistence.CascadeType;
           import javax.persistence.Entity;
           import javax.persistence.GeneratedValue;
           import javax.persistence.GenerationType;
           import javax.persistence.Id;
           import javax.persistence.OneToMany;
           import javax.persistence.OneToOne;
           import javax.persistence.Transient;
        
           import org.hibernate.annotations.UpdateTimestamp;
           import       org.springframework.beans.factory.annotation.Autowired;
           import org.springframework.context.annotation.Scope;
           import org.springframework.data.util.Pair;
           import org.springframework.stereotype.Component;
        
           import com.simplilearn.mediCare.config.ConfigBean;
           import com.simplilearn.mediCare.repositories.CartRepo;
           import com.simplilearn.mediCare.user.User1;
        
           import lombok.Data;
           import lombok.EqualsAndHashCode;
           import lombok.NoArgsConstructor;
           @Component
           @Scope("prototype")
           @Entity
           @Data
           @NoArgsConstructor
           public class Order1 {
            
                
            @Autowired
            @Transient
            CartRepo cartRepo;
            
            @Id
            @GeneratedValue(strategy=GenerationType.IDENTITY)
            private long id;
            
            
            @Autowired
            @OneToOne
            private User1 user1;
        
            
            @OneToMany
            private Set<ProductAndQty> 
            productsAndQty=this.user1.getCart().getProductsAndQty();
            
            @UpdateTimestamp
            private LocalDateTime orderTimeStamp;
            
            @OneToMany(cascade = CascadeType.ALL)
            List<Status> orderStatus=new ArrayList<>();
            
            public Order1(String Statusmsg,Cart cart){
                Status status=new Status();
                status.setStatusMsg(Statusmsg);
                this.orderStatus.add(status);
                this.productsAndQty=cart.getProductsAndQty();
                Set<ProductAndQty> productsAndQty1=new HashSet<>();
                cart.setProductsAndQty(productsAndQty1);
                cartRepo.save(cart);
                }
            
            private long totalPrice=calculateTotalPrice();
        
            public long calculateTotalPrice() {
                this.totalPrice=0l;
                productsAndQty.forEach(pAndq->this.totalPrice+= 
             (pAndq.getQty()*pAndq.getProduct().getPrice()));
                return totalPrice;
               }
            }
    ```
    *User1.java*
    ```
            package com.simplilearn.mediCare.user;
         
            import javax.persistence.CascadeType;
            import javax.persistence.Entity;
            import javax.persistence.GeneratedValue;
            import javax.persistence.GenerationType;
            import javax.persistence.Id;
            import javax.persistence.OneToOne; 
            import javax.validation.constraints.Email;
        
            import org.springframework.stereotype.Component;
        
            import com.fasterxml.jackson.annotation.JsonIgnore;
            import com.simplilearn.mediCare.entities.Cart;
        
            import lombok.AllArgsConstructor;
            import lombok.Data;
            import lombok.NoArgsConstructor;
            import lombok.ToString;
        
        
            @Data
            @Component
            @Entity
            @NoArgsConstructor
            @ToString
            public class User1 {
        
            @Id
            @GeneratedValue(strategy = GenerationType.IDENTITY)
            private long id;
            String name;
            @Email
            String email;
            @JsonIgnore
            String Password;
            String role;
        
            @OneToOne
            Cart cart=new Cart();
        
        //  public User1(UserPayload userPayload){
        //  this.name=userPayload.getName();
        //  this.email=userPayload.getEmail();
        //  this.Password=userPayload.getPassword();
        //  this.role=userPayload.getRole();
        //  this.cart=new Cart();
        //}
        //  public User1() {
        //      UserPayload userPayload=new UserPayload();
        //      this.name=userPayload.getName();
        //      this.email=userPayload.getEmail();
        //      this.Password=userPayload.getPassword();
        //      this.role=userPayload.getRole();
        //      this.cart=new Cart();
        //  }
        //  
        }

pom.xml文件

        <?xml version="1.0" encoding="UTF-8"?>
        <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
            <modelVersion>4.0.0</modelVersion>
            <parent>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>2.7.3</version>
                <relativePath /> <!-- lookup parent from repository -->
            </parent>
            <groupId>com.simplilearn.Medicare</groupId>
            <artifactId>com.spring</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <name>Medicare</name>
            <description>Medicare project for phase 5</description>
            <properties>
                <java.version>17</java.version>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-data-jpa</artifactId>
                </dependency>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-validation</artifactId>
                </dependency>
                <!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->
                <dependency>
                    <groupId>javax.xml.bind</groupId>
                    <artifactId>jaxb-api</artifactId>
                    <version>2.3.1</version>
                </dependency>
        
                <!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
                <dependency>
                    <groupId>org.javassist</groupId>
                    <artifactId>javassist</artifactId>
                    <version>3.17.1-ga</version>
                </dependency>
        
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-web</artifactId>
                </dependency>
        
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-devtools</artifactId>
                    <scope>runtime</scope>
                    <optional>true</optional>
                </dependency>
                <dependency>
                    <groupId>com.h2database</groupId>
                    <artifactId>h2</artifactId>
                    <scope>runtime</scope>
                </dependency>
                <dependency>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <optional>true</optional>
                </dependency>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-test</artifactId>
                    <scope>test</scope>
                </dependency>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-hateoas</artifactId>
                </dependency>
                <dependency>
                    <groupId>org.springdoc</groupId>
                    <artifactId>springdoc-openapi-ui</artifactId>
                    <version>1.6.4</version>
                </dependency>
                <dependency>
                    <groupId>org.springdoc</groupId>
                    <artifactId>springdoc-openapi-webflux-ui</artifactId>
                    <version>1.6.4</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter</artifactId>
                </dependency>
            </dependencies>
        
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
                        <configuration>
                            <excludes>
                                <exclude>
                                    <groupId>org.projectlombok</groupId>
                                    <artifactId>lombok</artifactId>
                                </exclude>
                            </excludes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        
        </project>
    ```



共有1个答案

樊琦
2023-03-14

我认为您自动布线模型实体的方法是错误的。有一种分层方法,主要在Spring遵循。

控制器-

因此,我建议不要在模型中自动连接任何内容,因为当spring data jpa将从数据库中引入数据并对其进行解谐化时,他应该为关系创建新的对象,并在java代码中为您提供。在这种情况下,当您在彼此中自动布线模型时,那么在多线程环境中,当多个用户与您的应用程序交互时,它将中断。

 类似资料:
  • 问题内容: 我正在使用BeautifulSoup抓取网址,并且我有以下代码 现在在上面的代码中,我们可以用来获取标签和与其相关的信息,但是我想使用xpath。是否可以将xpath与BeautifulSoup一起使用?如果可能的话,任何人都可以给我提供示例代码,以使其更有帮助吗? 问题答案: 不,BeautifulSoup本身不支持XPath表达式。 另一种库,LXML, 不 支持的XPath 1.

  • 我正在使用BeautifulSoup刮取一个URL,并使用以下代码查找标记,其类为: 现在,在上面的代码中,我们可以使用获取标记和与它们相关的信息,但我想使用XPath。是否可以将XPath与BeautifulSoup一起使用?如果可能,请给我提供示例代码。

  • 我们希望使用selenium自动化回归测试用例。这些回归测试用例可在JIRA和HP ALM中获得。我在这里的目标是使用Selenium(Java)并以这样的方式自动化这些测试用例:当我通过eclipse IDE从Selenium webdriver执行单个测试用例时,我的测试用例应该能够标记对应于每个测试用例的结果(通过/失败)。你能告诉我这是否可以做到吗??

  • 问题内容: 是否可以将Oracle JDK随附的 tools.jar 与依赖于它的商业产品一起分发(即,根据Oracle许可条款,在法律上)?是或否,请提供参考以证实您的答案。 问题答案: 根据我的阅读,是的,但有一些警告: 您必须仅通过“ javac字节码编译器”(包括tools.jar;)重新分发整个Oracle JDK或整个JRE。允许重新分发与您的应用程序捆绑在一起。 重新分发的JDK或J

  • 问题内容: 有什么方法可以使用@Autowired静态字段。如果没有,还有其他方法可以做到这一点吗? 问题答案: 简而言之,没有。您不能在Spring中自动连线或手动连线静态字段。为此,您必须编写自己的逻辑。

  • 我用下面的代码在我的WordPress网站上获得了WooCommerce形式的产品类别列表: 这工作正常,并返回产品类别的列表。我现在一直试图得到一个特定类别的产品列表。 示例:使用获取的所有产品。 我知道产品是作为帖子存储的,并且一直在努力做到这一点,但似乎做不到。 如何获取特定类别的产品列表?