小编Pau*_*aul的帖子

Guava:保持插入顺序的HashBasedTable?

我需要一种方法来保留一个值的两个键 - 正是Guavan的HashBasedTable所做的.问题是它在迭代值时不保留插入顺序.是否有任何优雅的解决方案让它工作?它不一定是Guava,但我不想让依赖的项目膨胀.

我试图使用提到的ImmutableTable - 我还没有找到任何例子.在构建这样的表时,我到处都是NPE:

ImmutableTable<String, String, AbstractUnit> units;
ImmutableTable.Builder<String, String, AbstractUnit> builder =        units.builder();
builder.put(unit1.getType(), unit1.getName(), unit1);
...
units = builder.build();
Run Code Online (Sandbox Code Playgroud)

当gettinb units.values()时,我将获得NPE.另外,我能否在表格中修改AbstractUnit的值?

java guava

7
推荐指数
2
解决办法
1925
查看次数

Datanucleus,JDO和可执行jar-怎么做?

我正在使用Datanucleus和JDO开发用于嵌入式H2数据库的桌面应用程序。当我从Eclipse运行它时,一切正常,但是当我尝试用它制作可执行jar时,它将停止工作。我收到以下错误:

org.datanucleus.exceptions.NucleusUserException:已将持久性进程指定为使用名称为“ jdo”的ClassLoaderResolver,但DataNucleus插件机制尚未找到该持久性进程。请检查您的CLASSPATH和插件规范。

当然,这表明我没有正确配置某些内容-我缺少什么?如果我错过了一些大东西,那根本就行不通,所以我假设它是一个有缺陷的可执行jar。我已经在其他应用程序中看到了该错误,例如JPOX,该错误已得到修复,但没有给出任何解决方案。

整个错误stacktrace:

Exception in thread "main" javax.jdo.JDOFatalInternalException: Unexpected exception caught.
        at javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1193)
        at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:808)
        at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:701)
        at db.PersistenceManagerFilter.init(PersistenceManagerFilter.java:44)
        at Main.main(Main.java:26)
NestedThrowablesStackTrace:
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at javax.jdo.JDOHelper$16.run(JDOHelper.java:1965)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.jdo.JDOHelper.invoke(JDOHelper.java:1960)
        at javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1166)
        at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:808)
        at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:701)
        at db.PersistenceManagerFilter.init(PersistenceManagerFilter.java:44)
        at Main.main(Main.java:26)
Caused by: org.datanucleus.exceptions.NucleusUserException: Persistence process has been specified to use a ClassLoaderResolver of name "jdo" yet this has not been found by the DataNucleus plugin mechanism. …
Run Code Online (Sandbox Code Playgroud)

java jdo datanucleus

5
推荐指数
2
解决办法
6369
查看次数

Google Guice桌面应用程序 - 如何使其工作?

我在我的网络应用程序中使用Guice没有问题,我想在桌面应用程序中使用它.我当然缺少一件事 - 某种方式告诉我的应用程序如何绑定所有内容并知道什么是什么.在Web应用程序中,我在Application类中声明了这一点,我应该如何在桌面应用程序中执行此操作?

这是我正在使用的相关代码:

public class GuiceModule extends AbstractModule
{
   @Override
   protected void configure()
   {
   // Enable per-request-thread PersistenceManager injection.
   install(new PersistenceManagerFilter.GuiceModule());
   // Business object bindings go here.
   bind(ProjectQueries.class).to(JdoProjectQueries.class);
   bind(new TypeLiteral<Repository<Project>>() { }).to(JdoProjectRepository.class);
 }
Run Code Online (Sandbox Code Playgroud)

我的主要课程:

@Inject
public Repository<Project> projectRepo;

public void createNewProject() {
   ...
   projectRepo.persist(newProject);
}
Run Code Online (Sandbox Code Playgroud)

我当然正在使用projectRepo.persist(newProject);

那么,我还需要做些什么才能让它发挥作用?

编辑:

好的,那个部分现在正常工作,谢谢:)似乎我需要做更多的事情来让持久性工作那样.

我现在在这里接受NPE:

public void persist(T entity) 
{ 
pmProvider.get().makePersistent(entity); 
} 
Run Code Online (Sandbox Code Playgroud)

get()在这里返回null

它看起来像install(new PersistenceManagerFilter.GuiceModule()); 是不足够的.我需要做什么?我的Repository类以以下内容开头:

public abstract class JdoRepository<T> implements Repository<T> { 
  private final Class<T> clazz; 
  private final Provider<PersistenceManager> pmProvider; 
  protected JdoRepository(Class<T> clazz, …
Run Code Online (Sandbox Code Playgroud)

java inject guice

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

标签 统计

java ×3

datanucleus ×1

guava ×1

guice ×1

inject ×1

jdo ×1