我很难找到对@GeneratedValue的准确解释,以及从数据库角度出发的不同策略.
是否始终查询数据库并返回可用的最后一个值?如果2个不同的进程(不同的Hibernate应用程序)同时访问同一个表会发生什么?特别是自动数值和序列
我有点失去理智.一直遵循4.1.1文档
它说使用该类JobDetailBean
该类甚至不存在于包中.如果我将我的pom更新为4.0.7那就是.文档是否过时了?这个课程是否会被弃用?
我有一个类Cache,创建起来非常昂贵,但之后设置为单例并注入我的服务层.
@Override
protected void configure() {
bind(Cache.class).in(Singleton.class);
bind(Service.class).to(ServiceImpl.class).in(Singleton.class);
}
@Inject
public ServiceImpl(Cache cache){
this.cache = cache;
}
public Cache(){
//Expensive stuff
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我试图访问其中一个方法时,Cache中的public()似乎只会执行
我可以以某种方式使对象在服务器启动时构建吗?
我的jar没有运行,我可以告诉它尝试运行,因为log4j文件管理创建日志文件夹,但没有任何反应,日志是空白的.
我的问题是我将jar文件放在名为bin的文件夹中,并将库放在名为lib的文件夹中
我在嘲笑这个:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<outputDirectory>${staging.dir}/bin</outputDirectory>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addClasspath>true</addClasspath>
<mainClass>com.Main</mainClass>
<classpathPrefix>../lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
和
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${staging.dir}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用maven-assembly-plugin,但它包装了jar上的所有东西,我真的需要有文件夹bin和lib
我需要设置什么才能使其正常工作?
编辑:META-INF文件
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: me
Build-Jdk: 1.6.0_26
Main-Class: com.Main
Class-Path: ../lib/ojdbc6-11.2.0.jar ../lib/sqljdbc4-4.2.0.jar ../lib/
mysql-connector-java-5.1.17.jar ../lib/hibernate-core-3.6.5.Final.jar
../lib/antlr-2.7.6.jar ../lib/commons-collections-3.1.jar ../lib/dom
4j-1.6.1.jar ../lib/hibernate-commons-annotations-3.2.0.Final.jar ../
lib/hibernate-jpa-2.0-api-1.0.0.Final.jar ../lib/jta-1.1.jar ../lib/s
lf4j-api-1.6.1.jar ../lib/hibernate-entitymanager-3.6.5.Final.jar ../
lib/cglib-2.2.jar ../lib/asm-3.1.jar ../lib/javassist-3.12.0.GA.jar .
./lib/slf4j-log4j12-1.6.1.jar ../lib/log4j-1.2.16.jar ../lib/commons-
codec-1.5.jar ../lib/lablib-checkboxtree-3.3-20110114.141734-3.jar
Run Code Online (Sandbox Code Playgroud)
解
原来META-INF文件不正确.原因是maven-archiver-plugin将时间戳重命名为SNAPSHOT库作为默认行为
根据Maven …
我有2个TimeItems,我希望能够验证第二个项目的值不大于第一个项目的值.
我知道我必须从CustomValidator继承并将我的验证逻辑放在#condition中,我可以使用#getFormItem检索已验证项的值,但我不知道如何将第一个字段的值传递给验证器
大多数人应该熟悉为Spring + hibernate制作Generic DAO.参考资料来自http://www.ibm.com/developerworks/java/library/j-genericdao/index.html,但单DAO和通用CRUD方法(JPA/Hibernate + Spring)有所改进
这种改进是对类型的检测,因为它是超类的一部分,而不是使用构造函数来判断它是哪个类
public GenericDaoJpaImpl() {
ParameterizedType genericSuperclass = (ParameterizedType) getClass()
.getGenericSuperclass();
this.entityClass = (Class<T>) genericSuperclass
.getActualTypeArguments()[0];
}
Run Code Online (Sandbox Code Playgroud)
但是,这个演员会因Guice而失败.要注入,接口和类需要绑定在这样的模块中
bind(TestDao.class).to(TestDaoImpl.class);
Run Code Online (Sandbox Code Playgroud)
通过这样做,我们的GenericDAO的构造函数将无法工作,因为以下内容:
getClass().getGenericSuperclass() = java.lang.Class
getClass().getName() = com.gwtplatform.samples.basic.server.dao.TestDaoImpl$$EnhancerByGuice$$5fe0d6fd
Run Code Online (Sandbox Code Playgroud)
与Spring + Hibernate返回的内容相反
getClass().getGenericSuperclass() = sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl
getClass().getName() = com.gwtplatform.samples.basic.server.dao.TestDaoImpl
Run Code Online (Sandbox Code Playgroud)
我现在只是在我的扩展DAO中使用超级构造函数,但是仍然希望获得该类型而不是提供它,任何想法?
我正在使用CXF 2.5.2与Maven,它没有指定-exsh它工作正常.但是,当我这样做时说
-exsh文件:/ C:/wsdl/XXXX.wsdl不在枚举值列表中!
我不知道它的含义是什么.之后支持该选项并在Usage行上提及.我真的需要让它工作,因为一堆方法在WSDL中有soap:header元素.
我已经阅读了这篇文章http://www.javapractices.com/topic/TopicAction.do?Id=31,它说使用instanceof预先检查我的对象是不好的做法.
但是在这种情况下我不知道怎么做:我有一个返回项目列表的API.此项列表返回用户和管理员
如果我投射一个像(用户)项目的项目,一旦它到达管理员,我将有一个ClassCastException
for(Item item : items){
if (item instanceof User){
((User)item).getName());
((User)item).getEmail());
}
else if (item instanceof Admin){
((Admin)item).getName());
((Admin)item).getEmailList().getPrimary());
}
}
Run Code Online (Sandbox Code Playgroud)
由于它是一个API,我不能修改Item,Item没有关于childs的方法,而且email检索方法不同.我还有其他选择吗?