小编Sno*_*irl的帖子

Java继承和泛型

我有一些看起来像这样的类:

模型

public abstract class BaseEntity<O extends Object> { ... }

public class Person extends BaseEntity<Person> { ... }
Run Code Online (Sandbox Code Playgroud)

命令

public abstract class BaseCommand<BE extends BaseEntity<BE>> { ... }

public class PersonCommand extends BaseCommand<Person> { ... }
Run Code Online (Sandbox Code Playgroud)

服务

public interface BaseService<BE extends BaseEntity<BE>> {
    public BE create(BaseCommand<BE> command);
}

public interface PersonService extends BaseService<Person> { ... }
Run Code Online (Sandbox Code Playgroud)

服务进展

public abstract class BaseServiceImpl<BE extends BaseEntity<BE>> implements BaseService<BE> { }

public class PersonServiceImpl extends BaseServiceImpl<Person> implements PersonService {
    public Person create(PersonCommand personCommand) …
Run Code Online (Sandbox Code Playgroud)

java generics inheritance

3
推荐指数
1
解决办法
168
查看次数

JOIN打破WHERE子句子查询

我的数据库中有3个表.

  • PARENT_A具有"ID"主键列.
  • PARENT_B具有"ID"主键列.
  • CHILD具有"PARENT_A_ID"和"PARENT_B_ID"外键列.它还有一个"START_DATE"列,这是一个VARCHAR(遗憾的是,我不能改变它).

现在,我有以下查询.

更新 - 我更新了子查询,使其更像我的实际代码.对c2有一个额外的限制,保证START_DATE是一个有效的日期.

SELECT *
FROM PARENT_B pb
LEFT OUTER JOIN CHILD c1 ON c1.PARENT_B_ID = pb.ID
WHERE pb.ID IN
(
    SELECT c2.PARENT_B_ID
    FROM PARENT_A pa
    LEFT OUTER JOIN CHILD c2 ON c2.PARENT_A_ID = pa.ID
    WHERE TO_DATE(c2.START_DATE, 'mm/dd/yyyy') BETWEEN
          ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'), -12) AND
          (TRUNC(SYSDATE, 'MONTH') - 1)
    AND c2.HAS_VALID_DATE = 1
);
Run Code Online (Sandbox Code Playgroud)

此查询失败.我得到一个ORA-01843: not a valid month例外.但是,如果我删除第一个连接(查询的第3行),查询运行正常.

我不知道是怎么回事.子查询本身运行正常,所有值都采用正确的日期格式.

有谁知道发生了什么事?

sql oracle join date subquery

3
推荐指数
1
解决办法
651
查看次数

如何通过Ant显示jUnit错误

我正在尝试将Ant脚本添加到我公司的项目中以运行jUnit测试.这是我有的:

<target name="unit-tests">
    <junit>
        <classpath>
            <pathelement location="${project.libext.dir}/junit-4.1.jar"/>
        </classpath>
        <batchtest>
            <fileset dir="${project.src-test.dir}/my/company/." />
        </batchtest>
    </junit>
</target>
Run Code Online (Sandbox Code Playgroud)

该脚本正确地抓取我的jUnit测试,但它说有错误.但所有输出都会说:

[junit] Test package.MyTest FAILED
Run Code Online (Sandbox Code Playgroud)

我想知道它失败的原因.我曾尝试加入一些属性到的junit标记(printsummary,showoutput,等),但似乎无法找到合适的组合.我设法得到的最好的是:

[junit] Running package.MyTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
Run Code Online (Sandbox Code Playgroud)

我真的需要完整的堆栈跟踪等,因为当我通过Eclipse运行为> Junit测试时,测试运行正常.

任何人都知道如何打印堆栈跟踪?

ant junit

3
推荐指数
1
解决办法
764
查看次数

Internet Explorer跨域Iframe登录

我在域A(我们控制)中有一个Java Web应用程序.此应用程序显示位于域B(我们无法控制)的另一个网站iframe.最近更新了此外部网站,要求用户在可以查看内容之前登录.他们为我们提供了一个URL,可以自动将用户登录到他们的网站.当我们在Internet Explorer中直接导航到它时,此URL可用(我们会自动登录等).

但是,显然Internet Explorer更新, 因此不允许跨域通信.所以现在当登录URL显示在iframe,它没有成功登录(我猜它被阻止创建安全cookie).

此外,如果我们直接浏览到URL并获得安全性,那么iframe该站点的任何元素都将无效(我猜它被阻止访问安全性cookie).

有谁知道这方面的工作?在Internet Explorer上更改安全级别不是一种选择(它由我们公司的系统管理员控制).Internet Explorer也是我们公司的标准,因此我们无法改变它(即使它在Firefox中运行良好).

security iframe internet-explorer login

3
推荐指数
1
解决办法
1万
查看次数

杰克逊用子类反序列化

好吧,我知道有很多类似的问题,但似乎没有任何效果.

我为我的实体设置了以下结构.

public abstract class MyAbstractClass {
   // bunch of properties, getters, and setters that subclasses share

   public abstract String getType();
}

public class MySubclass1 extends MyAbstractClass {
    //  a few unique properties, getters, and setters

    public String getType() {
        return "Type_1"; //always the same for each instance of MySubclass1
    }
}

public class MySubclass2 extends MyAbstractClass {
    //  a few unique properties, getters, and setters

    public String getType() {
        return "Type_2"; //always the same for each instance of MySubclass2 …
Run Code Online (Sandbox Code Playgroud)

java json jackson

3
推荐指数
1
解决办法
2102
查看次数

JavaScript整数导致NaN

我有JavaScript,基本上如下所示

function a() {
    b(1);
}

function b(myNumber) {
    c(myNumber);
}

function c(myNumber) {
    var calculation = 5 * (myNumber - 1);
    alert(calculation);
}
Run Code Online (Sandbox Code Playgroud)

当我调用该函数时a(),警告框最终会显示"NaN".为什么会这样?我尝试过parseInt()在很多地方使用这个功能,但似乎没什么用.

编辑

完整代码(实际上是做什么而不是剥离的例子):

function updateTablePagination(tableId, rowsPerPageSelectId) {
    updateTablePagination(tableId, rowsPerPageSelectId, 1);
}

function updateTablePagination(tableId, rowsPerPageSelectId, pageNumber) {
    var table = document.getElementById(tableId);
    var rowsPerPageSelect = document.getElementById(rowsPerPageSelectId);
    var rowsPerPage = rowsPerPageSelect.options[rowsPerPageSelect.selectedIndex].text;

    updateTable(table, rowsPerPage, pageNumber);
    //updateTablePageLinks();
}

function updateTable(table, rowsPerPage, pageNumber) {
    var tableRows = table.getElementsByTagName("tr");
    var totalNumberOfRows = tableRows.length;

    var startRow = rowsPerPage * (pageNumber …
Run Code Online (Sandbox Code Playgroud)

javascript variable-types

2
推荐指数
1
解决办法
485
查看次数

违反了不存在的Oracle数据库约束

我被分配到在具有两个表的应用程序的工作,让我们给他们打电话MY_TABLE_ONEMY_TABLE_TWO.当用户在表单中输入数据时,将输入数据MY_TABLE_ONE.完成此操作后,将触发数据库包,基本上执行以下操作:

DELETE FROM MY_TABLE_TWO;

INSERT INTO MY_TABLE_TWO
mto.COLUMN_ONE,
moto.COLUMN_TWO,
mott.COLUMN_THREE
FROM MY_TABLE_ONE mto, MY_OTHER_TABLE_ONE moto, MY_OTHER_TABLE_TWO mott
WHERE mto.OTHER_TABLE_ONE_UUID = moto.UUID
AND mto.OTHER_TABLE_TWO_UUID = mott.UUID;
Run Code Online (Sandbox Code Playgroud)

出于某种原因,这个包开始在插入时失败,并带有以下消息:

ORA-00001: unique constraint
(MY_SCHEMA.MY_TABLE_TWO_UK01) violated
ORA-06512: at "MY_SCHEMA.MY_PACKAGE", line 2
ORA-06512: at line 1
Run Code Online (Sandbox Code Playgroud)

查看约束MY_TABLE_TWO,没有MY_TABLE_TWO_UK01约束.但是有一个MY_TABLE_TWO_UK约束要求3个插入的列是唯一的.但是,如果我运行以下查询:

SELECT mto.COLUMN_ONE, moto.COLUMN_TWO, mott.COLUMN_THREE, COUNT(*) AS COUNTER
FROM MY_TABLE_ONE mto, MY_OTHER_TABLE_ONE moto, MY_OTHER_TABLE_TWO mott
WHERE mto.OTHER_TABLE_ONE_UUID = moto.UUID
AND mto.OTHER_TABLE_TWO_UUID = mott.UUID
GROUP BY mto.COLUMN_ONE, moto.COLUMN_TWO, mott.COLUMN_THREE …
Run Code Online (Sandbox Code Playgroud)

sql oracle unique-constraint

2
推荐指数
1
解决办法
2127
查看次数

比Oracle Database Union更快的选项

我有一个表有多个存储文本值的列.例如:

ID    FATHER_NAME    MOTHER_NAME
--------------------------------
1     Henry          Sarah
2     Martin         Rebecca
3     Martin         Nancy
Run Code Online (Sandbox Code Playgroud)

我想获得表中的所有名称.我知道我可以做一个工会来做到这一点:

(SELECT FATHER_NAME FROM MY_TABLE)
UNION
(SELECT MOTHER_NAME FROM MY_TABLE)
Run Code Online (Sandbox Code Playgroud)

但是,在我的真实表中,我需要联合15列,查询显然需要一段时间(大约12秒).我仍然需要加入这些名称等等.除了做工会还有其他选择吗?

仅供参考:我正在使用Oracle.

database oracle performance union oracle10g

2
推荐指数
1
解决办法
1175
查看次数

Java EE应用程序中的样式路径

我有一个Java EE应用程序,在应用程序中我有以下结构.

WEB-INF
    layout
        header.jsp
    styles
        main.css
Run Code Online (Sandbox Code Playgroud)

我想包括在main.cssheader.jsp.我试图用以下内容(其中......是路径):

<link rel="stylesheet" href="..."> 
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法找到正确的道路.我已经尝试过以下各项而没有运气:

../styles/main.css
/styles/main.css
styles/main.css
/WEB-INF/styles/main.css
WEB-INF/styles/main.css
Run Code Online (Sandbox Code Playgroud)

什么是正确的道路?

html css java path

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