小编Cry*_*ark的帖子

我应该用什么来替换 hibernate 已弃用的 @TypeDef 和 @Type 注释?

我刚刚将 Hibernate 使用的版本升级到 5.6.1,现在似乎已弃用一些与类型相关的注释:

@TypeDef(name = "json", typeClass = JsonBinaryType::class)


@Type(type = "json")
Run Code Online (Sandbox Code Playgroud)

我没有找到任何关于该做什么的文档,除了

6.0 将引入一系列新的类型安全注释来达到相同的目的

我们的质量指南迫使我们尝试解决每个警告,因此我想用非弃用的用途替换这些注释。

java hibernate deprecated

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

如何从项目级别指定 --add-opens 并确保无论以何种方式运行我的应用程序都将其考虑在内?

--add-opens我最近迁移到 Java 17,由于运行应用程序时的一个依赖项,它带来了一些限制,要求我使用。

我需要在java -jar运行命令时添加它。现在我找到了这些解决方案:

  • 我可以将其添加到运行该项目的 Dockerfile 中的命令行参数中
java --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED -jar my.jar
Run Code Online (Sandbox Code Playgroud)
  • 我可以通过我的 Maven 将它添加到我的 MANIFEST.MF 中pom.xml
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifestEntries>
                <Add-Opens>java.base/sun.util.calendar java.base/java.util</Add-Opens>
            </manifestEntries>
        </archive>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

显然,两者都适合生产。然而,当通过 IntelliJ 运行我的应用程序时,它没有选择我认为是正常的选项。我必须将它们设置在我的运行配置中(顺便说一下,它也提交给我的项目)作为虚拟机参数。

我正在寻找一种方法来自动确保一致性,而不必在我声明附加打开的两个地方并行维护。

编辑:我想知道 argfiles 是否可行。就像我的项目中有一个 argfile 一样,它将在 jar 中引用,并且可以在 y 运行配置中引用。我还没有找到太多证据,但这就是我目前正在追求的道路。

编辑2:我addopens在项目的根目录添加了一个文件,现在可以从我需要它的各个点引用它。对于测试,我添加了这个,并且它与 IntelliJ 测试和 Maven 测试一起开箱即用:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <!-- This adds the options contained in the addopens file to the test JVM arguments -->
        <argLine>@addopens @{argLine}</argLine>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我还可以将该addopens …

java intellij-idea maven java-platform-module-system

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

如何强制Eclipse Mars 4.5格式化程序不加入已包装的行?

我刚从日食Kepler转移到eclipse Mars,我的Java格式化程序似乎不再以同样的方式运行了.

我曾经能够做到以下几点:

object
    .method1()
    .method2()
    .method3();
Run Code Online (Sandbox Code Playgroud)

格式化程序会保留我的代码.然而,自从我改为eclipse火星后,一切都被包裹在一条线上.

我已经验证了格式化程序,我仍然选中"从不加入已包装的行"选项.我的项目没有使用关于eclipse格式化程序的特定设置.我尝试从头开始重新创建格式化程序,结果是一样的.

我如何强制eclipse不加入这些行呢?

谢谢

java eclipse eclipse-mars eclipse-formatter

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

has_one through和多表继​​承的多态关联

在我目前正在rails 4.0.0beta1下开发的项目中,我需要基于用户的身份验证,其中每个用户都可以链接到一个实体.我对铁路有点新手并且遇到了一些麻烦.

该模型如下:

class User < ActiveRecord::Base
end

class Agency < ActiveRecord::Base
end

class Client < ActiveRecord::Base
  belongs_to :agency
end
Run Code Online (Sandbox Code Playgroud)

我需要的是用户能够链接到代理商或客户端,但不能同时链接到两者(这两个是我将要调用的实体).它根本没有链接,最多只有一个链接.

我首先要寻找的是如何在rails中进行Mutli-Table继承(MTI).但有些事阻止了我:

  • 它没有开箱即用
  • 对于像我这样的新手来说,MTI看起来很难实现
  • 实施解决方案的宝石似乎过时了,太复杂或不完整
  • 宝石可能会在rails4下破坏,因为它们暂时没有更新

所以我寻找另一种解决方案,我发现了多态关联.

我从昨天起就开始使用它并花了一些时间使其工作,即使在Rails多态性has_many的帮助下:通过ActiveRecord,has_many:through和多态关联

我设法从上面的问题做了例子,但是花了一段时间,我终于遇到了两个问题:

  1. 如何将用户关系转换为has_one关联,并能够"盲目"访问链接实体?
  2. 如何设置约束,以便没有用户可以拥有多个实体?
  3. 有没有更好的方法来做我想要的?

activerecord ruby-on-rails polymorphic-associations multi-table-inheritance

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

通过AJAX将动态字段添加到嵌套表单

我一直在观看和重现我的应用程序上的这些railscast:196-nested-model-form-part-1197-neested-model-form-part-2.我还没有专业帐户,所以我无法观看修改后的剧集.

我正在rails4(edge)下开发并且link_to_function已经被弃用而不喜欢不引人注目的JS(这很棒).

我将保留上述railscast的示例(即调查/问题).我想做的是使用问题的部分通过不引人注目的JavaScript,我只是不知道我应该如何以及在哪里做到这一点.

我想到了两种方法:

  • 第一种方法是添加我app/assets/javascripts的文件surveys.js与功能,add_question但我不知道如何从这里使用我的部分.
  • 其他方式是在我的行动中创建一个新的行动,SurveyController使用部分问题作出回应,但我对调查控制器中的问题采取特定行动的事实感到困扰.

我不禁认为必须有更好的方法来做到这一点.

ajax ruby-on-rails nested-forms railscasts

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

相当于ruby/rails中的Array.some

我想在rails中做相当于Array.some的操作.

这是一个应用于我的用例的例子,它更复杂include?(我想将其应用于*args):

ary = [:a, :b, :c, d: :x, e: :y] # => [:a, :b, :c, { :d => :x, :e => :y }]
search = :e
contained = ary.some { |x|
  x == search || x.try(:key?, search)
} # => true
assert contained, "We should have found #{search}"
Run Code Online (Sandbox Code Playgroud)

我可以这样做,ary.map但这意味着要通过整个数组,然后再次测试它的内容.我也可以使用ary.drop_while并验证它是否返回一个空数组,但是我还需要测试结果.我也看到了,ary.bsearch但是有一些奇怪的限制,我不太了解元素的顺序.

我错过了什么吗?有没有一种简单的方法可以做到这一点?我正在使用ruby2和rails 4(边缘).

ruby arrays ruby-on-rails

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

绕过org.apache.hadoop.mapred.InvalidInputException:输入模式s3n:// [...]匹配0个文件

这是我已经在spark用户邮件列表上提出的一个问题,我希望在这里取得更大的成功.

我不确定它与火花直接相关,虽然火花与我不能轻易解决这个问题的事实有关.

我正在尝试使用各种模式从S3获取一些文件.我的问题是其中一些模式可能没有返回任何内容,当他们这样做时,我得到以下异常:

org.apache.hadoop.mapred.InvalidInputException: Input Pattern s3n://bucket/mypattern matches 0 files
    at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:197)
    at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:208)
    at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:140)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:207)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:205)
    at scala.Option.getOrElse(Option.scala:120)
    at org.apache.spark.rdd.RDD.partitions(RDD.scala:205)
    at org.apache.spark.rdd.MappedRDD.getPartitions(MappedRDD.scala:28)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:207)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:205)
    at scala.Option.getOrElse(Option.scala:120)
    at org.apache.spark.rdd.RDD.partitions(RDD.scala:205)
    at org.apache.spark.rdd.FlatMappedRDD.getPartitions(FlatMappedRDD.scala:30)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:207)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:205)
    at scala.Option.getOrElse(Option.scala:120)
    at org.apache.spark.rdd.RDD.partitions(RDD.scala:205)
    at org.apache.spark.rdd.UnionRDD$$anonfun$1.apply(UnionRDD.scala:52)
    at org.apache.spark.rdd.UnionRDD$$anonfun$1.apply(UnionRDD.scala:52)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
    at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:34)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at org.apache.spark.rdd.UnionRDD.getPartitions(UnionRDD.scala:52)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:207)
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:205)
    at scala.Option.getOrElse(Option.scala:120)
    at org.apache.spark.rdd.RDD.partitions(RDD.scala:205)
    at org.apache.spark.Partitioner$.defaultPartitioner(Partitioner.scala:58)
    at org.apache.spark.api.java.JavaPairRDD.reduceByKey(JavaPairRDD.scala:335)
    ... 2 …
Run Code Online (Sandbox Code Playgroud)

hadoop amazon-s3 apache-spark

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

在java中选择N个随机不同的int的高效方法?

我目前正在寻找最好的方法,因此在n个int中选择x个唯一的int.它会像Random.nextInt(range)多次一样,但它永远不应该选择两次相同的int.如果它发生x > n那么结果将只包含n个int

我试图自己做这个,我目前基于Fisher/Yates shuffle这样做:

private static final Random R   = new Random();

public static int[] distinctRandoms(int nb, int max) {
    int[] all = new int[max];
    for (int i = 0; i < all.length; i++) {
        all[i] = i;
    }
    if (max <= nb) {
        return all;
    }
    int index;
    int[] result = new int[nb];

    for (int j = 0, k = all.length - 1; k > 0 && j < nb; k--, j++) {
        index …
Run Code Online (Sandbox Code Playgroud)

java random

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

Maven自动清洁包装

我每次运行mvn包时都会尝试自动清理一些麻烦.我在POM中添加了:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-clean-plugin</artifactId>
            <version>2.5</version>
            <executions>
                <execution>
                    <id>auto-clean</id>
                    <phase>initialize</phase>
                    <goals>
                        <goal>clean</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        ...
    </plugins>
    ...
</build>
Run Code Online (Sandbox Code Playgroud)

但我从M2Eclipse得到以下错误:

生命周期配置未涵盖插件执行:org.apache.maven.plugins:maven-clean-plugin:2.5:clean(执行:自动清理,阶段:初始化)

我尝试了其他阶段,如"验证"或"生成资源",但我总是得到同样的错误.

eclipse initialization package m2eclipse maven

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

rake undefined方法`fields'代表nil:数据库种子上的NilClass

当我尝试做的时候

rake db:reset
Run Code Online (Sandbox Code Playgroud)

要么

rake db:drop
rake db:create
rake db:schema:load
rake db:seed
Run Code Online (Sandbox Code Playgroud)

NoMethodError: undefined method 'fields' for nil:NilClass当种子出现时,我随机得到一个.这是一个:

[1m[35m (186.0ms)[0m  INSERT INTO "schema_migrations" (version) VALUES ('20130318105449')
[1m[36m (187.0ms)[0m  [1mINSERT INTO "schema_migrations" (version) VALUES ('20130319154146')[0m
[1m[35m (189.0ms)[0m  INSERT INTO "schema_migrations" (version) VALUES ('20130322132730')
[1m[36m (104.0ms)[0m  [1mINSERT INTO "schema_migrations" (version) VALUES ('20130322142814')[0m
NoMethodError: undefined method `fields' for nil:NilClass:               SELECT COUNT(*)
          FROM pg_class c
          LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
          WHERE c.relkind in ('v','r')
          AND c.relname = 'schema_migrations'
          AND n.nspname …
Run Code Online (Sandbox Code Playgroud)

postgresql rake ruby-on-rails seeding ruby-on-rails-4

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