小编ven*_*syv的帖子

如何配置hibernate以扫描不同模块中的实体

我有模块A和模块B,它们都有JPA注释类.模块B有一个单元测试,从A中提取几个实体.两个模块编译正常,运行时依赖项设置正常,但是当我尝试运行单元测试时出现以下错误:

java.lang.IllegalArgumentException: Unknown entity: MyClassHere
Caused by: org.hibernate.MappingException: Unknown entity: MyClassHere
Run Code Online (Sandbox Code Playgroud)

这发生在EntityManager.merge调用中.

由于模块B具有所有hibernate配置文件等,我猜它根本就没有发现我的A类是一个实体.

我尝试将以下内容添加到persistence.xml中

<exclude-unlisted-classes>false</exclude-unlisted-classes>
Run Code Online (Sandbox Code Playgroud)

在hibernate.cfg.xml中我添加了:

<property name="packagesToScan">myNamespace.*</property>
Run Code Online (Sandbox Code Playgroud)

然后:

 <property name="packagesToScan">
                <array>
                    <value>myNamespace.*</value>
                </array>
</property>
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误,"属性"的内容必须匹配null.然后我尝试了:

<mapping class="myNamespace.*" />
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

编辑:我忘了提到的一件可能有意义的事情是,这两个模块被设置为单独的项目(我正在使用eclipse),所以目录结构是不同的.运行时依赖项都已正确设置,但由于.class文件最终位于不同的目录中,我认为hibernate可能不会扫描那些.

java hibernate jpa maven

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

Dimple js在Firefox中无法正确缩放

我制作了一些带有凹坑的图表,它们在铬中看起来很好(第43节),但在Firefox(第40版)中它们的渲染不正确.

我在调试器中检查了页面,我可以看到<svg>标签下面有一个<g>标签.检查员显示铬标记为720x556,并在Firefox为730x97,这显然会导致一个扭曲的阴谋.

在许多图表上都会出现同样的问题 - 气泡图,折线图和条形图.

我正在使用dimple 2.1.6和d3 3.5.6

这是我的代码示例:

link: function(scope, element, attrs) {
  var svg = dimple.newSvg(element[0], 800, 600);
  svg.text("Charttitle");
  var myChart = new dimple.chart(svg, data);

  myChart.addCategoryAxis("x", "column1");
  myChart.addCategoryAxis("y", "column2");
  myChart.addCategoryAxis("z", "column3");
  myChart.addSeries("column1", dimple.plot.bubble);

  myChart.draw();
}
Run Code Online (Sandbox Code Playgroud)
<div ng-view class="ng-scope">
  <div class="col-md-12 ng-scope" ng-controller="MyController">
    <traffic-plot val="p2pTraffic" load-data="loadData(ip)" class="ng-isolate-scope">
      <svg width="800" height="600">
        <g>
           <!-- The rest of the dimple generated code -->
        </g>
      </svg>
   </traffic-plot>
 </div>
</div>
Run Code Online (Sandbox Code Playgroud)

有任何建议如何解决这个问题?

编辑:在做了一些研究后,我发现它<g>是一个容器元素,用于对图形元素进行分组,允许组元素(在本例中为svg)作为一个元素处理.在元素检查器中,svg似乎具有正确的大小,但顶级 …

javascript firefox d3.js angularjs dimple.js

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

Java是否在任何地方定义其原始类型的大小?

是否有一个包定义了我可以在项目中导入的Java基元的大小?我正在做一些手动位设置,我保留一个字节索引.我currentByte += 4设置一个int(魔术数字不赞成)时我不想做,我宁愿这样做currentByte += <SomePackage>.SIZE_OF_INT

我想我可以定义自己的,但这有点笨重,特别是如果那些在某个地方可用.

java primitive primitive-types

8
推荐指数
2
解决办法
1070
查看次数

在JPA中插入多行的最有效方法

我有父/子单向关系.当我检查日志时,我看到每个子行都有一个单独的插入查询,相当于让我们说:

insert into childTable(col1, col2) values(val1, val2);
insert into childTable(col1, col2) values(val3, val4);
Run Code Online (Sandbox Code Playgroud)

在单个查询中插入所有行不是更有效吗?有点像:

insert into childTable(col1, col2) values(val1, val2), (val3, val4)
Run Code Online (Sandbox Code Playgroud)

有没有办法强制JPA生成多行插入而不是单行插入?

编辑: 我目前正在使用级联插入,所以我插入父级,并自动生成子项的插入.我宁愿继续使用该方法,而不是让我们说手动创建一个巨大的SQL查询,因为我认为级联插入产生更清晰的代码.

我已经定期刷新会话以控制L1缓存的大小,因此耗尽内存不是问题.

java mysql hibernate jpa-2.0

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

JPA插入父/子结果导致MySQLIntegrityConstraintViolationException

这已经被多次询问了,但是我找不到任何好的答案,所以我会再问一次.

我有父子单向关系如下:

@Entity
@Table(name = "PARENT")
public class Parent {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long parentId;

    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
    @JoinTable(name = "CHILD", joinColumns = @JoinColumn(name = "parent_id"), inverseJoinColumns = @JoinColumn(name = "ID"))
    private List<Child> children;
}

@Entity
@Table(name = "CHILD")
public class Child {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long id;

    @Column(name = "PARENT_ID")
    private Long parentId;

    //some other field
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个父实例,为它分配一个子列表并尝试保留它:

Parent p = new Parent();
List<Child> children = …
Run Code Online (Sandbox Code Playgroud)

java mysql hibernate jpa

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

在bash脚本中重定向输出

我有一个bash脚本运行的东西:

python myscript.py --input=/path/file --someOption=value > /path/file
Run Code Online (Sandbox Code Playgroud)

如果我在没有重定向的情况下运行它,一切正常.如果我使用重定向运行它,文件将被截断.我怀疑python正在执行整行,包括重定向,实际上重定向必须由bash执行.

我试过了:

exec "python myscript.py --input=/path/file --someOption=value" 但我得到命令未找到错误.

如何让python只执行python部分,重定向由bash执行?

python linux bash redirect

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