小编Nic*_*tar的帖子

Hibernate多态性

这是Hibnerate多态性问题和数据模型设计问题; 他们正在交织.我过去曾经使用过Hibernate,并且很享受它,但有时我发现很难想到除了琐碎的设计之外的任何东西.不是对Hibernate的敲门声; 只是观察到ORM通常具有挑战性.

我认为这是一个Hibernate 101问题,但我不确定.我想要实现的目标甚至可能无法实现.

我有一个抽象类Fruit,它将被子类化为Apple和Orange.我有一个Note类,代表关于苹果和橘子的注释或评论.Apple或Orange可以有许多与之关联的Notes,但只有一个Apple或Orange将与给定的Note相关联.

这是类的草图,我现在在这里省略对象id的去向,以及将它们与Orange区分开的Apples的属性.目前,我对使用哪种Hibernate继承策略并不感到强烈.

abstract public class Fruit {
}

// Apples have notes written about them:
public class Apple extends Fruit {
   private Set<Note> note;
   ...

   @OneToMany(cascade = CascadeType.ALL)
   public Set<Note> getNote() {
       return note;
   }
}


// Oranges have notes written about them:
public class Orange extends Fruit {
   private Set<Note> note;
   ...

   @OneToMany(cascade = CascadeType.ALL)
   public Set<Note> getNote() {
       return note;
   }
}
Run Code Online (Sandbox Code Playgroud)

这是当前实现的Note类,其中我们看到它包含Apple和Orange的字段.这种设计的缺陷或不足之处在于,单个音符实例仅指向Apple或Orange之一,而不是两者.因此,如果一个Note被绑定到Apple,那么Orange字段是多余的并且不雅观,反之亦然.

// A note about an Apple or Orange
public class …
Run Code Online (Sandbox Code Playgroud)

java polymorphism hibernate

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

Jetty Filter修改响应 - java.lang.IllegalStateException:WRITER

我试图修改过滤器中的http响应,并得到以下异常

java.lang.IllegalStateException:位于org.eclipse.jetty.servlets的javax.servlet.ServletResponseWrapper.getOutputStream(ServletResponseWrapper.java:142)的org.eclipse.jetty.server.Response.getOutputStream(Response.java:657)处的WRITER. ProxyServlet.service(ProxyServlet.java:414)atg.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:643)org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1331)在com.cisco.vsx.node.proxy.http.RegexFilter.doFilter(RegexFilter.java:36)

我正在使用SelectChannelSelector和ProxyServlet.Transparent代理.

以下是测试类的片段

ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");

ProxyServlet.Transparent p1 = new ProxyServlet.Transparent("/proxy",
    "www.cisco.com", 80);
ServletHolder servletHolder = new ServletHolder(p1);
context.addServlet(servletHolder, "/proxy/*"); 
context.addFilter(new FilterHolder(RegexFilter.class), "/*", null);

server.setHandler(context);

server.start();
server.join();
Run Code Online (Sandbox Code Playgroud)

这是过滤器类的代码

PrintWriter out = response.getWriter();
CharResponseWrapper wrapper = new CharResponseWrapper((HttpServletResponse) response);

chain.doFilter(request, wrapper);

String html = wrapper.toString();
if (regex != null && response.getContentType() != null 
        && response.getContentType().startsWith("text/html")) {
    Matcher matcher = regex.matcher(html);
    Map<Integer, Integer> matches = new LinkedHashMap<Integer, Integer>();
    while (matcher.find()) {
        int start = matcher.start(1); …
Run Code Online (Sandbox Code Playgroud)

servlets jetty servlet-filters

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

无法在 IntelliJ IDEA 上运行测试

我在 IntelliJ IDEA 中有一个 Java/maven 项目,但是当我尝试运行测试时,我收到了消息Nothing Here

在此输入图像描述

java junit intellij-idea

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

如何使用Hibernate透明地连接到不同的数据库(开发/测试/生产)

我有几个用于不同环境的不同数据库,可将应用程序连接到该数据库。这些对于每个安装都是恒定的,但是它们之间是不同的。换句话说,有

  1. 连接到开发数据库的开发环境
  2. 最终连接到测试数据库的测试环境
  3. 具有自己数据库的生产环境

Hibernate是通过Annotations使用的,代码不会“知道”它在哪个环境中运行。所有数据库都是mySQL驱动的,但是url,用户名和密码不同。

目前,我从应用程序中删除了hibernate.cfg.xml并将其移至应用程序服务器用户的主目录,但是出于安全原因,这似乎不是一个很好的解决方案,因为这引入了手动更新任何更新环境时更改了映射。

我真的希望有更好的解决方案,但找不到。

java configuration hibernate

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

Tapestry中带<t:loop>组件的编码器

我有一个页面显示一些客户端的详细信息.我t:loop用来显示一些数据.在t:loop我只是路过sourcevalue.到目前为止,我的页面工作得很好.但是当我尝试提交页面时,它会突然给我一个例外.

"找不到类型java.lang.String到类型[addressUsageValue]的强制可用强制:.........."

下面是示例代码

<t:loop source="addressUsageInfo" value="addressUsageValue">
                  <tr>
                              <td>${addressUsageValue?.usage}</td>
                              <td>${addressUsageValue?.address}</td>
                              <td>${addressUsageValue?.postCode}</td>
                              <td>${addressUsageValue?.city}</td>
                              <td>${addressUsageValue?.country}</td>
                  </tr>
</t:loop>
Run Code Online (Sandbox Code Playgroud)

我做了一些调查,找到下面的参考.

http://tapestry.apache.org/5.3.3/apidocs/org/apache/tapestry5/corelib/components/Loop.html https://issues.apache.org/jira/browse/TAP5-609

所以我为Loop创建了编码器.下面是示例代码.在下面的toClient()方法中,我随机返回任何值,在toValue()方法中我返回null.

private final ValueEncoder<DtoAddressUsageInfo> addressUssageEncoder = 
    new ValueEncoder<DtoAddressUsageInfo>() {

    public String toClient(DtoAddressUsageInfo value) {
          return String.valueOf(value.getUsage());
    }

    public DtoAddressUsageInfo toValue(String clientValue) {
          return null;
    }

};
Run Code Online (Sandbox Code Playgroud)

现在我的代码工作正常,我可以提交表单.

我怀疑来了

首先 - 我无法理解为什么在使用循环时需要编码器?如果需要提交表单,那么为什么它不是必需参数?

第二 - 我刚刚实现了没有任何逻辑的编码器.我无法理解在哪里使用toValue()和toClient()方法,目的是什么?

第三 - 当我提交页面为什么表格需要编码器?

tapestry

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

从回复 Q 检索消息时获取“java.lang.NoClassDefFoundError: com/rabbitmq/client/impl/LongString”

我正在使用 spring-integration-amqp 4.1.4 和 rabbitmq amqp-client 3.5.3。消息正在传送,但回复消息检索引发以下异常。

org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer - 消费者引发异常,如果连接工厂支持,处理可以重新启动

java.lang.NoClassDefFoundError: com/rabbitmq/client/impl/LongString
Run Code Online (Sandbox Code Playgroud)

异常日志

spring-amqp

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

ssh:连接到主机heroku.com端口22:连接超时

我正在研究Ubuntu 11.10我的git-repo的本地分支是最新的

然后我在终端中编写了以下命令:heroku create --stack cedar并且它说:
注意:在6月20日星期三,我们的默认堆栈将更改为Cedar.http://bit.ly/Lh0rM5

创建radiant-wind-7413 ...完成,堆栈是雪松
http://radiant-wind-7413.herokuapp.com/ | git@heroku.com:radiant-wind-7413.git
Git远程heroku添加

一切都很好,直到现在,我在终端输入以下内容:

git push heroku master
Run Code Online (Sandbox Code Playgroud)

并发生以下错误: ssh:连接到主机heroku.com端口22:连接超时
致命:远程端意外挂断

connection timed heroku out connect

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

Mockito验证:在验证()期间验证,而不是在模拟方法调用期间验证

我用方法列表调用方法performAction并验证相同的方法.调用此方法后,我修改了一些"对象".

Mockito验证失败说参数不匹配(显示修改过的对象)但我可以在调试模式下看到对象在需要时是正确的.

理想情况下,这不应该发生,因为应该在实际调用方法时应用验证.在测试方法验证调用期间验证是否适用于模拟方法调用时?

测试类

@Test
public void test() throws Exception {
    List<ABC> objects = new ArrayList<ABC>();
    //populate objects.
    activity.performActions(objects);               
    verify(activity, times(1)).doActivity(objects);
}
Run Code Online (Sandbox Code Playgroud)

测试方法:

public void performActions(List<ABC> objects) {

    activity.doActivity(urlObjects2PerformAction);
    //Modify objects                

}
Run Code Online (Sandbox Code Playgroud)

我得到的错误如下(这是完整的代码.我给出了最小的可能代码段):

Argument(s) are different! Wanted:
activity.doActivity(
.......
......
Run Code Online (Sandbox Code Playgroud)

java junit verify mockito

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

Java Enum 链接到另一个 Enum

我想让 Java 中的枚举器具有其他枚举作为属性。

public enum Direction {
    Up(Down),
    Down(Up),
    Left(Right),
    Right(Left);

    private Direction opposite;

    Direction(Direction opposite){
        this.opposite = opposite;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我有不同的方向,对于每个我想知道相反的方向。它适用于 Down 和 Right,但我无法初始化 Up,因为 Down 还不知道(同一个堡垒 Left)。

初始化后如何编辑枚举变量?

java enums

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

风格问题 - 成员变量与获取(路径)

每当我必须将一些组件(A)添加到另一个组件(B)的AjaxRequestTarget时(通常是同一父级的两个子组件,我面临同样的决定:

使用父get(路径)方法,使A成为父组件的成员变量.两种变体似乎都有利有弊,我无法从"更好"代码的角度来决定哪种变得更好......

第一个变体是稳定的,即使(A)的路径发生变化,但是父母仍然很少使用很少使用的成员.另一个变体导致更清晰的父类,但在组件层次结构更改时添加了多个故障点.另外这个变体要么用魔术字符串(路径)或字符串常量(当我把路径放在那里时)来填充类...

任何提示都会被贬低.

编辑:这适用于Wicket 1.4,因为Wicket 1.5通过其EventBus解决了这个问题

wicket coding-style

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

如何使用Object的Key调用函数..?

从我的对象迭代,我试图调用函数并发送数据作为参数,在我的尝试,我收到错误..

使用对象键调用函数的正确方法是什么?

我的尝试:

var x = function(msg){
    console.log(msg);
}
var y = function(msg){
    console.log(msg);
}

    var obj = {x:"i am x", y:"i am y"}

    var all = function(){
        $.each(obj,function(key,value){
           [key](value);
        })
    }

    all();
Run Code Online (Sandbox Code Playgroud)

任何一个数字你正确的方法请...这里是jsfiddle链接

javascript jquery function object

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

UITabBarController隐藏的UITableView最后一个单元格

我面临一个奇怪的问题.

我有一个UITableView在最初UIViewControllerUITabBarController.一开始一切都没问题,但是当我更改标签并返回第一个标签时,标签栏UITableView会隐藏最后一个标签.

我怎样才能解决这个问题?

objective-c uitabbarcontroller uitableview uitabbar ios

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