我想用Hibernate坚持我的小动物园:
@Entity
@Table(name = "zoo")
public class Zoo {
@OneToMany
private Set<Animal> animals = new HashSet<Animal>();
}
// Just a marker interface
public interface Animal {
}
@Entity
@Table(name = "dog")
public class Dog implements Animal {
// ID and other properties
}
@Entity
@Table(name = "cat")
public class Cat implements Animal {
// ID and other properties
}
Run Code Online (Sandbox Code Playgroud)
当我试图坚持动物园时,Hibernate抱怨道:
Use of @OneToMany or @ManyToMany targeting an unmapped class: blubb.Zoo.animals[blubb.Animal]
Run Code Online (Sandbox Code Playgroud)
我知道targetEntity- @OneToMany但这意味着,只有狗或猫可以住在我的动物园.
有没有办法用Hibernate来持久化一个具有多个实现的接口集合?
我的Java webapp中有一堆servlet上下文监听器,每个都收集一些有关环境的信息.
其中一些依赖于另一个听众收集的信息.但我无法确定监听器的注册和调用顺序,因此我必须重复代码.
我理解听众是按照他们在web.xml中的顺序注册的,但这对我来说听起来有些模糊,过于模糊,无法依赖它.
你有提示我如何解决我的问题吗?
我刚开始为很多代码编写测试.有一堆类依赖于文件系统,即读取CSV文件,读/写配置文件等等.
目前,测试文件存储在项目的测试目录中(它是Maven2项目),但由于多种原因,该目录并不总是存在,因此测试失败.
您是否了解在单元/集成测试中应对文件系统依赖性的最佳实践?
编辑:我不是在寻找上面描述的特定问题的答案.那只是一个例子.我更喜欢一般建议如何处理文件系统/数据库等的依赖项.
在我的应用程序中,我使用Jersey REST来序列化复杂对象.这很好用.但是有一些方法只返回一个int或boolean.
泽西岛无法处理原始类型(据我所知),可能是因为它们没有注释,而泽西没有默认注释.我通过创建像RestBoolean或RestInteger这样的复杂类型来解决这个问题,它只包含一个int或boolean值并具有相应的注释.
有没有比编写这些容器对象更简单的方法?
我的应用程序使用REST(JAX-RS Jersey)接口.当我在Eclipse中运行它时,一切都很好.域对象是注释的,我没有使用XML文件进行REST映射.
现在我使用maven-assembly-plugin创建了一个独立的JAR,它将应用程序和所有依赖项打包在一个可执行的JAR文件中.这似乎也有效.
但是当我启动应用程序并从服务器请求一个对象时,Jersey抱怨说它无法找到一个消息正文阅读器:
com.sun.jersey.api.client.ClientHandlerException: A message body reader for Java type, class de.rybu.atuin.core.entity.User, and MIME media type, application/json, was not found
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会这样?
编辑:我睡了一个晚上后,我发现它抱怨JSON ......但我只使用XML进行序列化.奇怪.
我的一个朋友在他的公司中使用PowerBuilder编写的ERP软件.不幸的是,(唯一的)开发商即将退休.我的朋友真的很喜欢这个软件,并希望继续使用它至少十年,所以我的朋友决定购买源代码.
他希望创办一家企业来维护软件并开发新功能.目前,大约有50个软件安装在野外,他已经知道了许多潜在的买家.
现在他正在寻找一个开发人员并问我......我做了一些C/C++编程,一些VB和一些其他语言,但在过去几年里,我通过编写Java Web应用程序赚了我的钱.从我读到的内容来看,PowerBuilder对我来说看起来很陈旧,几乎没有任何教程,没有开源框架,笨拙的版本控制,甚至没有读过任何测试框架.StackOverflow的人们说他们希望语言/ IDE已经死了.此外,我维护的代码完全没有文档和未经测试.
对于那些以前从未听说过PowerBuilder的人来说,您认为维护这样的软件是否可行?
编辑:好的,谢谢你的回答.我们决定完全启动旧应用程序并使用最新语言重新编写它.
我正在准备一个maven2 web项目以进行持续集成.在运行集成测试之前,我使用maven cargo插件自动将WAR部署到Tomcat6x.
我的代码取决于一些设置的系统属性MAVEN_OPTS=-Dfoo=bar.不幸的是,当应用程序部署到Tomcat时,这些属性丢失了:
System.getProperty("foo"); // null, when deployed to container by maven-cargo
Run Code Online (Sandbox Code Playgroud)
如何将这些属性传递给Tomcat?
java ×6
rest ×2
dependencies ×1
filesystems ×1
hibernate ×1
interface ×1
java-ee ×1
jax-rs ×1
jersey ×1
maven-2 ×1
maven-cargo ×1
powerbuilder ×1
primitive ×1
servlets ×1
testing ×1
unit-testing ×1