小编wds*_*wds的帖子

Hibernate通过在ManyToMany关联上将完全限定类名添加到属性名来失败

我正在尝试使用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的内部配置中.

java hibernate

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

应用服务器 - 使用与否?

通常我们使用WebLogic或JBoss来部署我们的应用程序.我知道在使用像Spring这样的开源解决方案时,您可以开发应用程序并在像Jetty这样的简单servlet容器上运行它.所以问题是为什么甚至打扰app服务器?

java jetty application-server java-ee

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

如何在struts 2中使用枚举参数?

我正在尝试使用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

java enums struts2

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

高效的持久存储,用于java的简单id到值表映射

我需要存储一些数据,这些数据遵循将"id"映射到几列的完整表(具有多行)的简单模式(即一些整数值[u,v,w]).其中一个表的大小将是几KB.基本上我需要的是存储一些中间结果的持久缓存.

这可以很容易地实现为简单的sql,但是有一些问题,即我需要尽可能地在磁盘上压缩这个结构的大小.(因为我正在存储的值的数量)另外,它不是事务性的,我只需要编写一次并简单地读取整个表的内容,因此关系数据库实际上不是很合适.

我想知道是否有人有任何好的建议?出于某种原因,我似乎无法想出一些体面的atm.特别是在java中使用API​​的东西会很好.

java persistence data-structures

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

在python中使用多个谓词调用ifilter的简洁方法

我正在通过脚本流式传输一个非常大的集合,目前正在使用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调用似乎很难实现(并且可能不是最佳选择).也许我可以构造一个调用所有谓词的函数,但是如何尽可能简洁地(虽然仍然可读)编写它?

python iterator functional-programming

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

W3和xmlsoap.org架构之间有什么区别?

在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模式?

xml soap wsdl web-services

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

使用Spring工厂方法连接ExecutorService

我有一个简单的类,它有一个名为"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)

java spring

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