小编jib*_*One的帖子

Hibernate当两个表都有复合主键时,加入两个不相关的表

我正在编写java应用程序,hibernate 5.2但没有HQL

有两张桌子,TransactionsResponseCode

在此输入图像描述

我希望由Hibernate生成的select语句的逻辑看起来应该如下所示

SELECT t.tranType
      ,t.tranId
      ,t.requestDate
      ,t.rcCode
      ,t.tranAmount
      ,r.description
      ,r.status
  FROM transactions t
  LEFT OUTER JOIN responseCode r
    ON t.rcCode = r.rcCode
   AND (r.lang = 'en')
 WHERE (t.merchant_id =5 )
Run Code Online (Sandbox Code Playgroud)

但是我的代码出了问题,这是我的实现代码段

交易实体

@Entity
@Table(name = "transactions")
public class Transaction implements java.io.Serializable {
    private static final long serialVersionUID = 1L;

        @Column(name = "merchant_id", nullable = true)
        private String merchantID;

        @Column(name = "tran_amount", nullable = true)
        private String tranAmount;

        @Id
        @Column(name = "tran_type", nullable …
Run Code Online (Sandbox Code Playgroud)

java sql oracle hibernate jpa

12
推荐指数
1
解决办法
1468
查看次数

创建Oracle物化视图,每5分钟刷新一次使用物化视图日志

我正在尝试创建物化视图,它将每5分钟自动更新一次,我需要基于Mview日志表进行更新.

我在TABLE1 TABLE1.SQL脚本上创建了Materialized视图日志

CREATE MATERIALIZED VIEW LOG ON TABLE1;   -- MLOG$_TABLE1
Run Code Online (Sandbox Code Playgroud)

然后我创建了物化视图

CREATE MATERIALIZED VIEW JIBO_MVIEW 
REFRESH START WITH SYSDATE NEXT SYSDATE +5/24/60 
ENABLE QUERY REWRITE AS
      SELECT O.ID
            ,O.DATETIME_CREATED
            ,O.ORIGINATOR
            ,O.DETAILS
            ,O.PAYMENT_REF
        FROM TABLE1 O
       WHERE O.ORIGINATOR LIKE '53%';
Run Code Online (Sandbox Code Playgroud)

更改某些值后在TABLE1中,新的Record插入了MLOG $ _TABLE1日志表

在此输入图像描述

但在物化视图(JIBO_MVIEW)中未更新更改的值.(即使一天后:))

当我检查警报日志时,自动生成的DBMS_JOB存在问题,每次执行都会失败.

 - ORA-12012: error on auto execute of job 4263
 - ORA-00942: table or view does not exist
 - ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2809
 - ORA-06512: at "SYS.DBMS_SNAPSHOT", line 3025
 - ORA-06512: at "SYS.DBMS_IREFRESH", line …
Run Code Online (Sandbox Code Playgroud)

sql oracle replication materialized view

9
推荐指数
1
解决办法
1038
查看次数

如何修改mvn.cmd以在MANIFEST.MF文件中获取正确的jdk构建版本

我在我的机器上安装了2个版本的java,1.7和1.8.用于构建我的java项目我正在使用maven 3.5.0.

在某些情况下,我必须使用java 1.7构建我的java项目,所以我将%JAVA_HOME%环境变量更改"C:\Program Files\Java\jdk1.7.0_80""C:\Program Files\Java\jdk1.8.0_131".

然后我想如果我能这样做,pom.xml确定java的版本,通过它来构建项目.

起初我的pom.xml看起来像这样

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.7</source>
            <target>1.7</target>
        </configuration>
    </plugin>
...
</plugins>
Run Code Online (Sandbox Code Playgroud)

你可以看到有<source><target>标签,但这个标签不适用于java 1.7,1.8,也许它适用于早期版本.

所以我不得不在Mavens"settings.xml"和"pom.xml"文件中进行一些更改:

的settings.xml

<profiles>
    <profile>
        <id>compiler</id>
          <properties>
            <JAVA_1_7_HOME>C:\Program Files\Java\jdk1.7.0_80\bin\javac</JAVA_1_7_HOME>
            <JAVA_1_8_HOME>C:\Program Files\Java\jdk1.8.0_131\bin\javac</JAVA_1_8_HOME>
          </properties>
    </profile>
</profiles>

<activeProfiles>
        <activeProfile>compiler</activeProfile>
</activeProfiles>
Run Code Online (Sandbox Code Playgroud)

的pom.xml

<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <executable>${JAVA_1_7_HOME}</executable>
                <verbose>true</verbose>
                <fork>true</fork>               
            </configuration>
        </plugin>
...
</plugins>
Run Code Online (Sandbox Code Playgroud)

然后使用构建mvn install和它工作!如果我将可执行文件更改为$ {JAVA_1_8_HOME},则生成的jar文件的大小会发生变化.

但是MANIFEST.MF有一个大问题.JDK的构建版本是1.8.0_161,所以MANIFEST.MF会骗人,想找出构建jdk版本.

这样做的原因是Maven(mvn.cmd文件)看起来是%JAVA_HOME%并且采用了java的路径.如果环境中没有%JAVA_HOME%变量,则采用默认系统java -version,在我的情况下是1.8.0_161(JRE版本).

这是mvn.cmd代码片段

@REM ==== START VALIDATION ====
if not …
Run Code Online (Sandbox Code Playgroud)

java xml pom.xml maven

5
推荐指数
0
解决办法
750
查看次数

ORA-30372 细粒度访问策略与物化视图冲突

我正在尝试创建实体化视图,该视图将在 DB1 上每 6 小时运行一次,并从 DB2 表中复制数据。我在 DB2 远程表上创建了 MLOG$_REMOTE_TABLE1。

我正在使用 Oracle 11g(ps oracle 12g 在执行此脚本时没有问题)

在下面执行此脚本时,出现错误:

CREATE MATERIALIZED VIEW REPL_TABLE1
REFRESH FORCE ON DEMAND
START WITH SYSDATE NEXT SYSDATE + 6/24
ENABLE QUERY REWRITE
AS
SELECT * FROM REMOTE_TABLE1_SYN;
Run Code Online (Sandbox Code Playgroud)

ORA-30372: 细粒度访问策略与物化视图冲突

请告诉我为什么我在 11g 而不是 12g 上有这个问题(它是 11g 的错误)?我该如何解决?

sql oracle replication materialized

4
推荐指数
1
解决办法
8238
查看次数

标签 统计

oracle ×3

sql ×3

java ×2

materialized ×2

replication ×2

hibernate ×1

jpa ×1

maven ×1

pom.xml ×1

view ×1

xml ×1