草庐IT

Spring-Data-JPA

全部标签

java - 带有 c3p0 数据库池和故障转移的 Spring Boot JDBCTemplate

我需要在SpringBoot应用程序(嵌入式tomcat)中使用jdbctemplate为ibatis建立数据库连接故障转移,它使用c3p0进行连接池。下面是我的应用程序的applicaiton.properties。我有主要和次要数据库。如果主要失败,那么次要应该用于运行时的数据库连接故障转移。请帮助我实现这一目标。我尝试将多个数据库URL作为配置的一部分包含在内,但这是行不通的。c3p0JavaDatabasePooling,failoverconfigurationhttps://docs.genesys.com/Documentation/Composer/8.1.4/Help

java - 如何重新初始化一个Spring Bean?

是否可以在运行时重新初始化SpringBean?我的Bean使用静态设置,在某些情况下会发生变化,然后我必须重新初始化bean。 最佳答案 在spring上下文中更新单例bean有三个选项,您可以选择一个适合您的用例:Bean中的重新加载方法在你的bean中创建一个方法来更新/重新加载它的属性。根据您的触发器,从spring上下文访问bean,然后调用reload方法来更新bean属性(自单例以来)它也将在spring上下文中以及Autowiring/注入(inject)的任何地方更新。在注册表中删除和注册Bean您可以使用Defa

java - 在 Spring MVC 中创建的模型对象到底在哪里?

在阅读了一些教程并从docs.spring.org引用资料中阅读了初步文档后,我了解到它是在开发人员创建的POJO类的Controller中创建的。但是在阅读本文时,我遇到了以下段落:An@ModelAttributeonamethodargumentindicatestheargumentshouldberetrievedfromthemodel.Ifnotpresentinthemodel,theargumentshouldbeinstantiatedfirstandthenaddedtothemodel.Oncepresentinthemodel,theargument'sfie

java - 在 Spring 中延迟加载 DTO 字段

我有一个使用Spring的项目,它被分解成几十个DAO和关联的DTO。我使用的是JdbcTemplate,但没用太多,因为它正是我满意的抽象级别。我目前正在我的DTO上执行延迟加载,方法是在它们的getter中放置一些相当复杂的代码。基本样板逻辑是:1.如果字段不为空返回它的值并退出2.联系适当的DAO并获取相关的DTO3.保存到下次使用。除了我的低级DTO与一大堆DAO耦合并且不是那么POJOey之外,它工作正常。如果我将逻辑放在DAO中,则会出现另一种代码味道,因为它将处理其DTO的CRUD和延迟加载,据我所知,对象应该有单一的责任。我希望有一个相对简单的Spring方法,我可以使

java - 测试用例 : Mocking Database using Spring beans

我们的应用程序有一个服务层和一个DAO层,编写为Springbean。在测试服务层时——我不想依赖真实的数据库,所以我通过为DAO层创建一个“模拟”实现来模拟它所以当我测试服务层时——我将服务层bean链接到MockDAObean在生产中——将服务层链接到“真正的”DAObean这是个好主意吗?关于如何模拟数据库层的任何替代建议?澄清:这个问题是关于测试服务层而不是DAO层。在测试服务层时——我假设DAO层已经过测试或不需要测试。最主要的是——我们如何测试服务层——而不依赖于DAO实现——因此我在模拟DAO层 最佳答案 这是我们多年

java - 如何在类上创建一个方面,而不是使用 Spring AOP 的 bean?

我在处理遗留应用程序,其中使用了SpringAOP(即ProxyFactoryBean)。我需要围绕某个类的方法添加一个方面。然而,这个类不是一个bean。AspecjJ切入点表达式如下所示:执行(*xyz.package.Class.method())我创建了一个MethodInterceptor和AspectJExpressionPointcut,但我不知道如何让这两者协同工作。编辑:我没有此类的源代码,它是第3方库。这个类的实例不是我创建的,既不是在源代码中,也不是在作为beans的spring配置中。它由图书馆内部使用。感谢任何帮助。 最佳答案

java - JPA:数据库生成的列

我遇到了Hibernate和JPA的问题。我的要求是列CreatedDTTM和LastUPDATEDDTTM应该在数据库级别填充。我试过跟随但没有用。我的列设置为NOTNULL。我收到“无法将Null插入LastUpdatedDttm”异常。任何指导表示赞赏。@Column(name="LAST_UPDATED_DTTM",insertable=false,updatable=false,columnDefinition="DatedefaultSYSDATE")@org.hibernate.annotations.Generated(value=GenerationTime.INSE

java - 使用 spring jdbc oracle 设置 session 时区

我有一个spring/jdbc/oracle10g应用程序。Oracle服务器数据库时区设置为GMT+2JVM时区为GMT+2(尽管在我的情况下这无关紧要)。我有一个执行一些日期操作的存储过程。问题是session时区与数据库时区不同(格林威治标准时间),即使我没有在我的代码/配置中显式设置session时区。据我所知,session时区默认等于数据库时区。知道为什么session时区与数据库时区不同,或者我如何在spring配置(org.apache.commons.dbcp.BasicDataSource)中配置它?谢谢。 最佳答案

java - 不带应用程序服务器的 JPA

我正在编写一个小型Java应用程序,我希望能够将数据模型持久保存在数据库中。所以我想知道我是否可以为此使用JPA。我前段时间使用过JPA,但据我所知,它需要一个应用程序服务器。所以我想知道我是否可以只使用JPA来持久化我的类而不使用应用程序服务器。 最佳答案 是的,您可以在没有应用程序服务器的情况下使用JPA。这是一个可能对您有帮助的教程:TopLinkJPA:HowtouseJPAwithJavaSE 关于java-不带应用程序服务器的JPA,我们在StackOverflow上找到一个

java - JPA 和 toplink create-table 如果它们尚不存在?

看起来jpa是让我问了很多问题的东西。添加了这个我的JPA应用程序总是在运行时创建表,这会在表已经存在的情况下导致异常。我希望JPA检查表是否已经存在,如果不存在则创建它们,但是我找不到执行此操作的上述属性的值。因此,如果我只是将其关闭,是否有办法在某个时候手动告诉JPA创建所有表?更新这里是我得到的异常InternalException:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Table'tags'alreadyexistsErrorCode:1050Call:CREATETABLEtags(IDBIGINT