我正在尝试使用ManyToMany关联将两个对象相互映射,但出于某种原因,当我使用mappedBy属性时,hibernate似乎对我正在映射的内容感到困惑.关于我的映射唯一奇怪的是,关联不是在其中一个条目中的主键字段上完成的(尽管该字段是唯一的).
表格是:
Sequence (
id NUMBER,
reference VARCHAR,
)
Project (
id NUMBER
)
Sequence_Project (
proj_id number references Project(id),
reference varchar references Sequence(reference)
)
Run Code Online (Sandbox Code Playgroud)
对象看起来像(注释在getter上,将它们放在字段上以缩小一点):
class Sequence {
@Id
private int id;
private String reference;
@ManyToMany(mappedBy="sequences")
private List<Project> projects;
}
Run Code Online (Sandbox Code Playgroud)
而拥有方:
class Project {
@Id
private int id;
@ManyToMany
@JoinTable(name="sequence_project",
joinColumns=@JoinColumn(name="id"),
inverseJoinColumns=@JoinColumn(name="reference",
referencedColumnName="reference"))
private List<Sequence> sequences;
}
Run Code Online (Sandbox Code Playgroud)
这与MappingException失败:
在实体[test.local.entities.Project]上找不到property-ref [_test_local_entities_Project_sequences]
它似乎奇怪地预先填充了完全限定的类名,除以下划线.我怎样才能避免这种情况发生?
编辑:我多玩了一下这个.更改mappedBy属性的名称会引发另一个异常,即:
org.hibernate.AnnotationException:mappedBy引用未知的目标实体属性:test.local.entities.Project.sequences
因此注释正在正确处理,但不知何故,属性引用未正确添加到Hibernate的内部配置中.
通常我们使用WebLogic或JBoss来部署我们的应用程序.我知道在使用像Spring这样的开源解决方案时,您可以开发应用程序并在像Jetty这样的简单servlet容器上运行它.所以问题是为什么甚至打扰app服务器?
我正在尝试使用Struts 2中的Action来使用Enum作为输入参数.到目前为止我所做的看起来像:
public TestAction {
public enum Module {
VALUE1;
}
private Module module;
public void setModule(Module module) {
this.module = module;
}
public Module getModule() {
return module;
}
}
Run Code Online (Sandbox Code Playgroud)
但是当试图使用它时,我得到了一个xwork转换错误,并且该操作本身甚至都没有执行.我可以按原样工作,还是应该自己提供setModule(String)?
编辑:我正在使用struts 2.1.6我正在尝试的URL:/test.action?module = value1
我需要存储一些数据,这些数据遵循将"id"映射到几列的完整表(具有多行)的简单模式(即一些整数值[u,v,w]).其中一个表的大小将是几KB.基本上我需要的是存储一些中间结果的持久缓存.
这可以很容易地实现为简单的sql,但是有一些问题,即我需要尽可能地在磁盘上压缩这个结构的大小.(因为我正在存储的值的数量)另外,它不是事务性的,我只需要编写一次并简单地读取整个表的内容,因此关系数据库实际上不是很合适.
我想知道是否有人有任何好的建议?出于某种原因,我似乎无法想出一些体面的atm.特别是在java中使用API的东西会很好.
我正在通过脚本流式传输一个非常大的集合,目前正在使用ifilter一个简单的调用来拒绝某些值,即:
ifilter(lambda x: x in accept_list, read_records(filename))
Run Code Online (Sandbox Code Playgroud)
这是一个谓词,但现在我发现我应该添加另一个,我可能希望将来添加其他谓词.直截了当的方式是嵌套一个ifilter电话:
ifilter(lambda x : x not in block_list,
ifilter(lambda x: x in accept_list, read_records(filename)))
Run Code Online (Sandbox Code Playgroud)
我想简单地将谓词作为未绑定的函数放在列表中并使用它们.虽然这些重复的ifilter调用似乎很难实现(并且可能不是最佳选择).也许我可以构造一个调用所有谓词的函数,但是如何尽可能简洁地(虽然仍然可读)编写它?
在eclipse中创建wsdl文件时,它将名称空间设置为:
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
Run Code Online (Sandbox Code Playgroud)
为什么它使用schemas.xmlsoap.org而不是相关的w3模式?
我有一个简单的类,它有一个名为"executor"的属性,我想在其中ExecutorService使用spring 3.0进行连接.我按照文档说明您只需使用工厂类(在本例中Executors)并提供工厂方法来创建您的服务.但是,当我尝试将结果bean连接到我的类时,似乎spring认为类类型是java.lang.String而不是ExecutorService.
我不知道我在这里做错了什么.如果我查看文档,我似乎是正确的,但也许我需要以某种方式指示调用工厂方法的结果类?
这是错误:
java.lang.IllegalStateException:无法将类型[java.lang.String]的值转换为属性"executor"的必需类型[java.util.concurrent.ExecutorService]:找不到匹配的编辑器或转换策略
使用此配置:
<bean id="taskManager" class="examples.TaskManager">
<property name="executor">
<idref local="executorService" />
</property>
</bean>
<bean id="executorService" class="java.util.concurrent.Executors"
factory-method="newSingleThreadExecutor"
destroy-method="shutdownNow" />
Run Code Online (Sandbox Code Playgroud)
而这堂课:
public class TaskManager {
private ExecutorService executor;
public ExecutorService getExecutor() {
return executor;
}
public void setExecutor(ExecutorService executor) {
this.executor = executor;
}
}
Run Code Online (Sandbox Code Playgroud)