小编hom*_*xto的帖子

在JPA中设置列的默认值

是否可以为JPA中的列设置默认值,以及是否使用注释完成了哪些操作?

java annotations jpa

234
推荐指数
12
解决办法
37万
查看次数

在Intellij IDEA中附加额外的javadoc

当我在jEAee类或IDEA中的注释上使用快速文档查找(Ctrl + Q)时,我只得到一个空的javadoc.它只包含类名等基础知识.

如何将javadoc添加到libs IDEA提供给自己?

java javadoc intellij-idea

60
推荐指数
2
解决办法
4万
查看次数

在IntelliJ中找不到类文件

在IntelliJ中,当我尝试编译时,我得到了这个奇怪的错误.

Cannot find annotation method 'cascade()' in type 'javax.persistence.ManyToOne': class file for javax.persistence.ManyToOne not found
Run Code Online (Sandbox Code Playgroud)

我知道,问题似乎很明显,但是在这个问题上花了太多时间,我现在把信任交给你了!

我使用ideaCommunity-9,在那里我为JBoss创建了一个全局库,其中包含所有JBoss jar,包括ejb3-persistence.jar.我的模块包含这个库,我已将其移至依赖项的顶部.在类路径中没有其他地方我有一个javax.persistence.ManyToOne类,它也可以在IntelliJ中打开而不会出现问题.
如果我打开文件,我收到编译错误,IntelliJ显示没有问题,并按Ctrl + B导航到类文件.
代码也是用ant构建的,这里工作正常.

除了上面的错误,我在同一条路径上得到了另外六个(表中的名字等) - 都与JPA有关.我还收到一条消息说"请向JDC yada yada yada提交一个错误."

java jpa intellij-idea

21
推荐指数
2
解决办法
5万
查看次数

忽略某些字段的列表测试内容

我有一个场景,我从方法调用中收到一个列表,我想断言该列表包含正确的元素。一种方法是在每个元素中查找一些细节以查看要与哪个预期元素进行比较 - 例如。一个名字。然而,元素还包含一个随机生成的 UUID,我不关心比较。
然后我想一个测试工具可能会来救我。以下面的简化示例为例。

我有一个类狗:

public class Dog {
    private String name;
    private Integer age;
}
Run Code Online (Sandbox Code Playgroud)

它们包含在一个列表中:

List<Dog> dogs = ... many dogs
Run Code Online (Sandbox Code Playgroud)

现在我想测试该列表是否包含预期的狗,但由于某种原因我不知道某些字段 - 让我们说age. 我已经尝试过使用 assertj 和 hamcrest,但我找不到正确的解决方案,既可以比较两个列表,又可以忽略某些字段。

到目前为止,这就是我所拥有的(使用 hamcrest):

List<Dog> actualDogs = codeUndertest.findDogs(new Owner("Basti"));
List<Dog> expectedDogs = createExpectedListOfDogsWithoutTheAge();

Matcher.assertThat(actualDogs.get(0), Matcher.is(com.shazam.shazamcrest.matcher.Matchers
    .sameBeanAs(expectedDogs.(0))
    .ignoring("age")
))
Run Code Online (Sandbox Code Playgroud)

这有效,但它只比较 Dog 类的两个对象。我如何比较两个列表中的所有狗?
额外问题:如何在不知道顺序的情况下比较列表,或者我是否只需要断言预期的狗包含在列表中。

java unit-testing hamcrest assertj

14
推荐指数
2
解决办法
2万
查看次数

JPA中的复合键

我想创建一个具有自动生成主键的实体,但也是一个由两个其他字段组成的唯一复合键.我如何在JPA中执行此操作?
我想这样做是因为主键应该在另一个表中用作外键并使其复合并不好.

在下面的代码片段中,我需要命令和模型是唯一的.pk当然是主键.

@Entity
@Table(name = "dm_action_plan")
public class ActionPlan {
    @Id
    private int pk;
    @Column(name = "command", nullable = false)
    private String command;
    @Column(name = "model", nullable = false)
    String model;
}
Run Code Online (Sandbox Code Playgroud)

java annotations jpa compound-key

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

在JPA中未创建唯一约束

我创建了以下实体bean,并将两列指定为唯一.现在我的问题是创建的表没有唯一约束,并且日志中没有错误.有没有人有想法?

@Entity
@Table(name = "cm_blockList", uniqueConstraints = @UniqueConstraint(columnNames = {"terminal", "blockType"}))
public class BlockList {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    @ManyToOne(cascade = CascadeType.PERSIST)
    @JoinColumn(name="terminal")
    private Terminal terminal;
    @Enumerated(EnumType.STRING)
    private BlockType blockType;
    private String regEx;
}
Run Code Online (Sandbox Code Playgroud)

mysql jboss jpa unique-constraint

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

使用豆腐秤与svn

有没有人尝试过Laura Wingerd和svn一起使用的实用Perforce中描述的豆腐级?

豆腐秤告诉我们如何在分支(代码行)之间传播变化.稳定分支的变化应该合并到不太稳定的分支(从公司到软),并且较不稳定的分支的变化应该被复制到稳定的分支(软到公司).了解软件如何发展

这导致了开发分支,其中对更稳定分支的更改被合并,从而改进了开发分支中的代码,带来了新的开发和错误修正.

图取自Practical Perforce(ISBN 10:0-596-10185-6)http://dl.getdropbox.com/u/136976/tofu%20scale.png

所以问题是:你能在svn中做到这一点吗?在分支机构上工作时,如何从父级更新?我从CVS了解到,当您想要将更改合并回父分支(通常是主线)时,从一个分支更新到另一个分支会给您带来很多问题

svn version-control

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

TypeScript中的Typedef错误:'expected variableDeclarator'

在我的代码上运行tslint我收到此错误:

expected variableDeclarator: 'getCode' to have a typedef.
Run Code Online (Sandbox Code Playgroud)

对于TypeScript文件:

export var getCode = function (param: string): string {
    // ...
};
Run Code Online (Sandbox Code Playgroud)

我如何改进这一点,所以我没有看到tslint错误?

typescript tslint

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

Firefox中的事件问题

我在Firefox中访问"事件"时遇到问题.以下代码在Chrome中运行良好,但在Firefox中我收到"事件未定义"错误.

<tr onclick="rowSelected('thisRowType')">
  ... row content ...
</tr>

<script type="text/javascript">
    function rowSelected(type) {
        var eventRow = event.currentTarget; // here I get the error
    }
</script>
Run Code Online (Sandbox Code Playgroud)

据我所知,Firefox没有找到任何名为event的变量,但是我还没有找到除了'event'以外的任何东西也应该在Firefox中定义.

那么我怎样才能在Firefox中访问当前事件,或者重新设计应该如何?请注意,我有不同的行为'type'提供不同的值.

javascript javascript-events

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

Keycloak 需要数据库吗

我已将 Keycloak 设置为 SAML 代理,身份验证由当局提供的外部 IdP 完成。使用此 IdP 登录的用户都被接受,我们需要从 Keycloak 获得一个 OAuth 令牌来访问我们的系统。我已经尝试过使用 H2 的默认设置并使用外部 MariaDB 运行。

外部 IdP 为我们提供了用户的全名和个人 ID。GDPR 涵盖了这两个数据,我真的不喜欢将这些数据存储在 DMZ 中运行的数据库中的声音。开放Keycloak 访问后端数据库也不是一个好的解决方案,尤其是当我不需要存储用户时。

在没有数据库的情况下运行的好处是我有一个更简单的 DMZ 设置,因为我真的不需要在后端存储任何关于用户的信息。

我是否需要数据库,如果不需要,我如何在没有它的情况下运行 Keycloak?

keycloak keycloak-services

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

解释java.util.Date

我有一个系统,我通过第三方lib获取日期.我知道输入的日期是1914-08-28,我不关心时间和分钟.我需要将此日期发送给客户端,其格式应为1914-08-28T00:00.

我从第三方lib获得的是一个java.util.Date,在调试时,我发现了一些对我来说很奇怪的东西.
看看下面的图片.我有一个日期,当toString()它打电话给它返回8月27日22:00:00 CET 1914年,但当你看到包含cdate它看起来像在祖鲁时间.

在此输入图像描述

使用DateFormat格式化这个给了我1914-08-27T00:00:

java.text.DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'00:00");
Run Code Online (Sandbox Code Playgroud)

我真正期待的是我在祖鲁时间(1914-08-27T22:00Z)有一个约会,相当于1914-08-28T00:00 CET(第二天).

这可以使用以下代码重现.

Calendar instance.set(1914, 7, 28, 22, 0);
instance.setTimeZone(TimeZone.getTimeZone("CET"));
Date d = instance.getTime();
Run Code Online (Sandbox Code Playgroud)

现在d将显示CET时间和cdate(可见调试)将显示Zulu时间,但它们没有区别.如果使用默认时区,我希望CET时间与祖鲁时间不同.

对此有何解释?

java datetime date

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