目前,我们正在将应用程序从 Camel 2.x 迁移到 Camel 3.x,并面临默认情况下JacksonDataFormat不再使用应用程序上下文中的问题。ObjectMapper相反,您需要提供一个属性camel.dataformat.json-jackson.auto-discover-object-mapper=true才能使此功能发挥作用。我不明白为什么这不等于模块true的默认值camel-jackson-starter,这对我来说似乎不合逻辑。也许有人知道这背后的原因?
我创建了一个名为'movie_db'的数据库,将默认架构设置为APP.然后创建了一个名为"USERS"的示例表.
我与DB的连接如下:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver"/>
<property name="url" value="jdbc:derby://localhost:1527/movie_db"/>
<property name="username" value="root"/>
<property name="password" value="pass"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
现在我想编写一些测试并尝试执行以下查询:
SELECT * FROM USERS;
Run Code Online (Sandbox Code Playgroud)
我得到了什么:
java.sql.SQLSyntaxErrorException: Table/View 'USERS' does not exist.
Run Code Online (Sandbox Code Playgroud)
当我准确指定我正在使用的架构时:
SELECT * FROM APP.USERS
Run Code Online (Sandbox Code Playgroud)
一切正常.
如何在查询中省略模式名称?
更新: 像Bryan说的那样,我创建了一个名为默认模式的用户,并使用此登录进行授权.这是在查询中省略模式名称的最简单方法.但是,如果我想使用多个模式,唯一的方法是明确设置模式.