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

spring boot应用程序jpa在一个控制器中工作而不在另一个控制器中工作

阚原
2023-03-14

不工作的控制器:

@RestController
@RequestMapping("/demographic")
@SuppressWarnings("rawtypes")
public class VerificationController {

    @Autowired
    EntityManager entityManager;

    public final Logger logger = LoggerFactory.getLogger(this.getClass());


    @Autowired
    private UserRepository userRepo;
    @Autowired
    private RoleRepository roleRepo;
    @Autowired
    private VerificationRepository veRepository;

    @PostMapping(value = "/validate")
    @ResponseBody
    public ResponseDTO Verification(@RequestBody VerificationModel verificationModel) throws IOException {
        logger.info("-----Start of Method------ ");
        logger.info("verify");
        logger.debug("Request  :" + verificationModel);

        ResponseDTO responseDTO = new ResponseDTO();
        VerificationLog verificationLog = new VerificationLog();

        // General Elements
        verificationLog.setAadharNumber("290567459087");
        verificationLog.setVerificationType("pi");
        verificationLog.setVerifiedBy("superadmin");
        verificationLog.setUploadedDate(new Date());
        verificationLog.setIsBulkUpload(false);

        // Default Values
        verificationLog.setAge(0);
        verificationLog.setMatchPercentage(0);

        logger.debug("Request to be Added :" + verificationLog);
        VerificationLog verificationLog1 = veRepository.save(verificationLog);

        logger.debug("Request to be Added :" + verificationLog1);

工作控制器:

@RestController
@RequestMapping("/user")
@SuppressWarnings("rawtypes")
public class UserController {

    @Autowired
    EntityManager entityManager;

    public final Logger logger = LoggerFactory.getLogger(this.getClass());

@PostMapping(value = "/createadmin")
    @ResponseBody
    public ResponseDTO createAdminUser(@RequestBody User user) {
        logger.info("-----Start of Method------ ");
        logger.info("createadmin");
        logger.debug("Request  :" + user);
        ResponseDTO responseDto = new ResponseDTO();

        try {
            Object object = userRepo.findAdminUser(user.getUserName());
            if (object == null) {
                user.setIsActive(true);
                User createdUser = userRepo.save(user);         

                UserRole newUserRole = new UserRole();
                newUserRole.setUserName(createdUser.getUserName());
                newUserRole.setRole("ROLE_ADMIN");
                roleRepo.save(newUserRole);

                responseDto.setResult("Created");

                List list = userRepo.findAllAdminUsers();
                List<UserResponseDTO> admins = new ArrayList<UserResponseDTO>();
                for (int i = 0; i < list.size(); i++) {
                    Object[] row = (Object[]) list.get(i);
                    admins.add(new UserResponseDTO((String) row[0], (String) row[1], (Boolean) row[2]));
                }
                responseDto.setData(admins);
            } else {
                responseDto.setResult("Already Exists");
            }
        } catch (Exception e) {
            logger.error("Exception :" + e.getMessage());
            logger.warn("Stack Trace :" + e.getStackTrace());
        }
        logger.debug("Response :" + responseDto);
        logger.info("-----End of Method------ ");
        return responseDto;
    }
@Configuration
@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
public class BeanConfig {

    @SuppressWarnings("deprecation")
    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean lemb = new LocalContainerEntityManagerFactoryBean();
        lemb.setDataSource(getJndiObjectFactoryBean());
        lemb.setJpaVendorAdapter(jpaVendorAdapter());
        lemb.setJpaDialect(new HibernateJpaDialect());
        // lemb.setJ
        Properties prop = new Properties();
        prop.put(org.hibernate.cfg.Environment.RELEASE_CONNECTIONS, ConnectionReleaseMode.AFTER_STATEMENT);
        // prop.put(org.hibernate.cfg.annotations.IdBagBinder.)
        lemb.setJpaProperties(prop);
        lemb.setPackagesToScan(new String[] { ("com.aadhaar.verify.model"), ("com.aadhaar.verify.response") });
        return lemb;

    }

    public JpaVendorAdapter jpaVendorAdapter() {
        HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
        jpaVendorAdapter.setShowSql(false);
        jpaVendorAdapter.setGenerateDdl(false);
        // jpaVendorAdapter.setDatabase(Database.MYSQL);
        return jpaVendorAdapter;
    }

    @Bean
    public DataSource getJndiObjectFactoryBean() {
        // ComboPooledDataSource datasource = new ComboPooledDataSource();;
        // try {
        // datasource.setDriverClass("oracle.jdbc.driver.OracleDriver");
        // } catch (PropertyVetoException e) {
        // // TODO Auto-generated catch block
        // e.printStackTrace();
        // }

        // datasource.setMinPoolSize(5);
        // datasource.setMaxIdleTime(2000);
        // datasource.setMaxPoolSize(20);
        // datasource.setMaxStatements(2000);
        // return datasource;
        JndiObjectFactoryBean jobjFac = new JndiObjectFactoryBean();
        jobjFac.setJndiName("jdbc/AppzillonServerDS");
        try {
            jobjFac.setResourceRef(true);
            jobjFac.setProxyInterface(DataSource.class);
            jobjFac.afterPropertiesSet();
        } catch (IllegalArgumentException | NamingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();        
        }
        return (DataSource) jobjFac.getObject();
        /*
         * JndiDataSourceLookup dataSourceLookup = new JndiDataSourceLookup();
         * DataSource dataSource =
         * dataSourceLookup.getDataSource("jdbc/AppzillonServerDS"); return
         * dataSource;
         */
    }

共有1个答案

甄霖
2023-03-14

尝试添加此属性

Properties prop = new Properties();
prop.put("hibernate.connection.release_mode", "auto");
prop.put("hibernate.connection.handling_mode", "DELAYED_ACQUISITION_AND_RELEASE_AFTER_STATEMENT");
 类似资料:
  • 嗨,我用spring初始化器创建了一个简单的Spring Boot应用程序。我在主应用程序类的同一文件夹中添加了一个控制器。 这是给我以下错误的网址http://localhost:8080/welcome 此应用程序没有针对/错误的显式映射,因此您将其视为回退。 Sat Dec 19 12:51:44 IST 2020出现意外错误(类型=未找到,状态=404)。 如果我使用@restContro

  • 我有以下控制器: 我想这意味着一些连接正在工作,但我在网页上得到了一个404错误。 奇怪的是,当我将这两个类复制粘贴到另一个项目(在一个我以前工作过并知道工作的包中)时,代码运行良好。但是,如果在同一个项目中,我创建了一个新的包,并在该包中放置了新的控制器和一个新的启动类,那么控制器也不能工作(404错误)。 我使用eclipse构建了这个项目,并在类路径中包含了所有依赖项,我从来不需要创建web

  • 问题内容: 使用SceneBuilder。我有2个阶段,每个阶段都有一个控制器: , 。 Stage1Controller: Stage2Controller: 这是使用2种方法 (称为in 方法)将这两个fxml文件加载到Main.java类中的方式: 该方法在第一阶段中用作方法,它在两个阶段都转换视图。 如何输入方法?谢谢 问题答案: “快速又脏”的方法是给的引用: 现在在您的主应用程序中:

  • 我有两个控制器< code>LoginViewController和< code>UserViewController 用户成功登录后,我需要将屏幕重定向到用户仪表板,并显示登录成功消息。 为此,可以使用两种方法 > < li> 由于我有一个在< code>UserViewController中加载用户仪表板的方法,所以我在< code>LoginViewController中自动连接了< cod

  • 我有两个控制器和。我正在读一本书的内容。来自的txt文件,我希望将该文本放置在的文本区域中。代码在中运行并读取良好,但当打开中的窗口时,从中读取的内容。文本内容在文本区域中不可见。我的显示String mine包含内容,但它不显示在的文本区域中。请帮助任何人。非常感谢。 FXMLDocumentController代码 在中,有一个我删除了和,这样代码就可以工作了。

  • 问题内容: 我不确定是否遇到“最佳实践”问题,试图以一种怪异而奇妙的方式解决该挑战,或者我是否还没有掌握AngularJS。 场景 :因此,我一直在尝试一种方法,使页面上多次输出“ originCity.cityName”,所有这些都引用同一工厂内的同一对象,希望将其设置为其他值(例如“测试字符串”),那么它将追溯替换我在页面周围拥有的所有内容。 在两个单独的控制器中,我对工厂进行了以下致电: 并