当SQL Developer导出sql脚本时,有多个选项可用,但无论哪种方式都必须生成UNIQUE INDEX像这样的主键
CREATE UNIQUE INDEX "SYS_C0018099" ON "TRANSACTION" ("ID")
Run Code Online (Sandbox Code Playgroud)
并添加PRIMARY KEY到同一个表和同一列
ALTER TABLE "TRANSACTION" ADD PRIMARY KEY ("ID")
Run Code Online (Sandbox Code Playgroud)
所以问题是:它看起来像冗余吗?我认为在列上创建主键应默认在该列上创建唯一索引?那么为什么第一个命令是必要的呢?
这可能导致数据冗余?
我使用的是Oracle 11g,所以请分享一下为什么它应该如上所述.
提前致谢.
根据官方文档,LocaleContextHolder是:
简单的holder类,它将LocaleContext实例与当前线程相关联.
所以它与当前有关thread,但这是关于Thread线程还是当前请求的线程.
如果它是一个愚蠢的问题,请道歉,我不是一个LocaleContextHolder没有绑定到HTTP会话或其他东西,以便在任何服务层类中使用是安全的.
我目前的Spring 3.0项目正在与Flyway集成.
感谢谷歌网站,所以有我可以指望的文件.但不幸的是,没有太多关于与之融合的讨论JPA.
所以问题是:
如何整合Flyway persistence.xml?它是如何工作的?JPA提供程序每次都会进行auto generate架构更新,以便我们在之前或之后运行脚本?
我想到目前为止flyway的查询不支持HQL,那么是否有任何示例代码,然后我可以了解如何集成迁移事件?设计拦截器或新方面?在域级别上做什么?
任何提示都表示赞赏.提前致谢.
在这里,我们只想从某个类路径中排除一个类,比方说
com.abc.projectA.service.orderService.sectionA.orderService.class
但是,有另一个具有相同名称但在不同类路径中的类
com.abc.projectA.service.orderService.sectionB.orderService.class
这样只有按类名称的文件管理器才能生效.
但我尝试了以下方法:
<context:component-scan base-package="com.abc">
<!--other filters-->
<!--.......-->
<context:exclude-filter expression="projectA\.service\.orderService\.sectionA\.orderService" type="regex" />
</context:component-scan>
Run Code Online (Sandbox Code Playgroud)
它不起作用.所以我打赌<context:exclude-filter>唯一有效的包级别但不是特定的类?如果是这样,如何从bean注入中排除一个类,以便我们可以选择类来连接相同的类名?
提前致谢.
我认为使用JMS的很多(我的情况下是Spring)应用程序可能会遵循以下工作流程:
Database A ===> Producer ===> JMS Queue ===> Consumer ===> Database B
Run Code Online (Sandbox Code Playgroud)
然后可靠性是一个问题.假设是否Database A应该始终将数据记录标记为delivered,当包含数据记录的消息被真正消耗并且保留数据时Database B.然后有问题:
从我所知,目前JMS协议没有定义任何功能,从发送确认consumer到producer,但只MOM,所以实际的consumer-to-producer确认方法,通过JMS提供者而异.那么这是否意味着没有办法为这种确认开发一种可以适用于所有JMS产品(ActiveMQ,WebSphere MQ和Jboss MQ)的机制?
考虑停电的情况,那么它是否会使队列中的消息消失,所以需要重新发送?或者不同的JMS产品可以获取剩余的内容,因为消息是序列化的,因此丢失的消息只能由事务管理或异步/同步配置引起,而不是因为应用程序服务器已关闭?
我找不到禁用dijit.form.FilteringSelect小部件的方法.该要求使css显示为none不是一个选项.
任何提示?提前致谢.
当<Resource>context.xml中有多个元素并且<resource-ref>web.xml中有多个元素时,我的应用程序开始抛出
TNS:no appropriate service handler found
Run Code Online (Sandbox Code Playgroud)
和
ORA-01017: invalid username/password; logon denied
Run Code Online (Sandbox Code Playgroud)
但是,如果JNDI中只有一个数据源,意味着另一个使用常规JDBC数据源,则应用程序就像魅力一样运行
两个数据源都来自相同的db URL,但使用不同的模式.
我的猜测是,它可能是由具有不同用户名/密码(架构)的每个资源的相同数据库URL引起的.但是tomcat应该能够处理这种情况,所以我的理由是可能有一些我错过的配置?
另一个有趣的发现是:当我使用jdbc url jdbc:oracle:thin:@myhost:1521:orcl和SQL Developer建立连接时,有时它连接没有问题,但有时会被同一个问题拒绝:appropriate service handler found同时这个Web应用程序是活动的.但是,相同的JDBC URL与另一个具有常规JDBC连接(而不是JNDI)的Spring应用程序一起工作正常.那诀窍是什么?
以下是当前配置的详细信息:
在Context.xml中
<Resource name="jdbc/app_A" auth="Container" type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@myhost:1521:orcl"
username="usernameA" password="passwordA" maxActive="20" maxIdle="10" maxWait="-1" />
<Resource name="jdbc/app_B" auth="Container" type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@myhost:1521:orcl"
username="usernameB" password="usernameB" maxActive="20" maxIdle="10" maxWait="-1" />
Run Code Online (Sandbox Code Playgroud)
在应用程序的Web.xml中:
<resource-ref>
<description>Oracle Datasource for app_A</description>
<res-ref-name>jdbc/app_A</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<description>Oracle Datasource for app_B</description>
<res-ref-name>jdbc/app_B</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)
在ApplicationContext.xml中
<jee:jndi-lookup id="dataSource1" jndi-name="java:comp/env/jdbc/app_A" …Run Code Online (Sandbox Code Playgroud) 不幸的是,一个巨大的表的一列具有一半数据的空值,因此在查询时
select count(*) from huge_table where half_null_col is null;
Run Code Online (Sandbox Code Playgroud)
即使已经编入索引,也将是一场性能灾难:
create index half_null_col_idx on huge_table(half_null_col asc);
Run Code Online (Sandbox Code Playgroud)
有两个问题:
Oracle 11g应该支持一个常量表达式来索引空值,但很抱歉我通过了oracle doc但是找不到关于它的明确的官方文档.如果有人知道,请分享参考
如何改变指数代替drop,并create再次以避免出现性能问题.
关于Jackson/JPA组合的问题
如果当前应用程序中有大约20个实体,并且我在POM中添加了Jackson依赖项,是否意味着所有实体都默认准备转换为JSON对象?我看到一个示例项目似乎只有类被注释为@JsonIgnored跳过JSON.如果是这样,那怎么会发生这种机制背后的原因呢?如何JACKSON处理那些没有任何杰克逊注释的实体,默认情况下是否被忽略?我一直在网上寻找资源,但运气不好.
如果20个实体中只有一个需要映射到JSON对象,是否意味着我必须将@JsonIgnore添加到所有其他19个实体?如果没有,如何Jackson区分实体工作?
谢谢.
当前的应用程序使用自己的log4j依赖项,但这成为在JBoss EAP6/AS7上部署的一个挑战,因为它总是因为日志记录问题而回滚部署.
所以我使用以下命令在线跟踪一些说明
standalone.sh -Dorg.jboss.as.logging.per-deployment=false
Run Code Online (Sandbox Code Playgroud)
好消息是有效的.现在我可以部署应用程序而不会出现停止部署的错误.
可悲的是,我无法说服客户端始终以这样的条件启动服务器.
所以我的问题是,如何在应用程序中永久进行此类更改?
我尝试添加
<exclusions>
<module name="org.apache.log4j" />
<module name="org.apache.commons.logging" />
<module name="org.jboss.logging" />
<module name="org.jboss.logging.jul-to-slf4j-stub" />
<module name="org.jboss.logmanager" />
<module name="org.jboss.logmanager.log4j" />
<module name="org.jboss.as.logging" /> <!--Including this trouble guy-->
<module name="org.slf4j" />
</exclusions>
Run Code Online (Sandbox Code Playgroud)
但它不起作用......那我该怎么办?