我想用hibernate工具生成序列(pojo to sql).肯定它工作正常.
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seqid-gen")
@SequenceGenerator(name = "seqid-gen", sequenceName = "RTDS_ADSINPUT_SEQ" )
@Column(name="id")
public Long getId() {
return id;
}
Run Code Online (Sandbox Code Playgroud)
此代码生成在sql下面
create sequence RTDS_ADSINPUT_SEQ;
Run Code Online (Sandbox Code Playgroud)
问题是我想指定像这样的属性
INCREMENT BY,NOCACHE CYCLE
Run Code Online (Sandbox Code Playgroud)
最后的ddl脚本应该是下面的东西
CREATE SEQUENCE RTDS_ADSINPUT_SEQ MINVALUE 1 MAXVALUE
999999999999999999 INCREMENT BY 1 START WITH 1 NOCACHE ORDER CYCLE ;
Run Code Online (Sandbox Code Playgroud)
但到目前为止我看到hibernate只支持 name, sequncename,allocation,initialvalue
如果我可以在pojo中包含这些属性作为注释,请建议我.
遵循所有java标准,我使我的类不可变
A. Defined class as final
B. declared all fields as private and final
C. No setter method
D. No method changes the state of object
E. declared all method as final
F. Safer/defencieve copying of collection/ non mutable object fields.
Run Code Online (Sandbox Code Playgroud)
这些是我在设计不可变类时所做的初步检查点.
但是还有一个问题,我的对象仍然可以通过java反射进行修改,对不对?或者我在课堂上错过了什么?
提前致谢.
嗨,我要求创建,编译和加载java类运行时.使用FTL我正在创建java源文件,并且如果没有动态依赖,则能够编译源代码.
为了详细说明一个实例,我有两个java源文件,一个接口及其实现类.我能够使用java编译器api编译接口,如下所示
String classpath=System.getProperty("java.class.path");
String testpath =classpath+";"+rootPath+"/lib/is_wls_client.jar;"+rootPath+"/rtds_wls_proxyclient.jar;.;";
File javaFile = new File(javaFileName+".java");
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
List<String> optionList = new ArrayList<String>();
optionList.addAll(Arrays.asList("-classpath",testpath));
StandardJavaFileManager sjfm = compiler.getStandardFileManager(null, null, null);
Iterable fileObjects = sjfm.getJavaFileObjects(javaFile);
JavaCompiler.CompilationTask task = compiler.getTask(null, null, null,optionList,null,fileObjects);
task.call();
sjfm.close();
Run Code Online (Sandbox Code Playgroud)
我为已经在类路径中的静态类设置类路径,但这种方法不适用于动态创建的类?任何自定义类加载器都会修复?我的最终实现将在web/app服务器中
任何反馈都将受到高度赞赏
Satheesh
在我当前的应用程序(A)中,我将用户重定向到另一个网站(B),用户使用他/她的帐户登录并完成一些活动,现在该网站(B)有一个按钮返回我的应用程序(A),重定向通过发布一个SAMLResponse
.
当用户点击该按钮时,用户返回到我的应用程序(A),其具有由该网站(B)在Form Data
标题信息的" "中分配的特定唯一用户ID.基本上,网站B也在SAMLResponse
请求中作为表单参数发布.
我如何在php和java中读取此请求信息?
我试图使用instrumentation调试java应用程序.当前系统的问题是
这使得很难追溯功能损坏的根本原因.
为了处理这种情况,我开发了工具,使用Instrumentation
API的java代理,我能够注入日志语句,并解决了一半的问题.
但下一个问题是记录异常.我想扩展我的工具记录在应用程序执行期间抛出的每个异常.我尝试使用注入"的try-catch"块javaassist
为方法API(使用addCatch
,insertBefore
和insertAfter
),并且它是有效的一定程度.
public byte[] transform(ClassLoader loader,
String className,
Class<?> classBeingRedefined,
ProtectionDomain protectionDomain,
byte[] classfileBuffer)
throws IllegalClassFormatException {
if (className.startsWith("com/alu/")) {
return insertLog(className, classBeingRedefined, classfileBuffer);
}
if(className.endsWith("Exception")){
System.out.println("============= exception occured "+className);
}
Run Code Online (Sandbox Code Playgroud)
这里 inserLog(..)
方法将注入必要的日志语句并且工作正常,但是当有任何异常时它不会转换为变换器.
但问题是一些方法处理异常内部(即使没有log/sysout).
例如:
try {
if(search.equals("Category")){
//do operation
}
} catch (Exception e) {
}
Run Code Online (Sandbox Code Playgroud)
这个代码NullPointerException
在值为search
null 时吃,我从来不知道这个异常和应用程序失败了.
最终我想要的是记录应用程序抛出的任何异常的机制.以下详细信息将被捕获
我知道有API Thread.setDefaultUncaughtExceptionHandler
,但不确定它如何与java检测一起使用.我没有任何源访问该应用程序.
[更新1]
我发现下面链接告诉使用retransformation
,我会试一试并更新 …
我有一个没有连接到Internet的Linux盒子.我已经安装上它Firefox 24.0
和jre1.7.0_40
(还有1.7.0_17
),当我开始FF与一个Web应用程序安装在本地的盒子,我得到一个警告弹出窗口,
需要Java更新; YourJava版本已过期
我不会不喜欢Java如何知道'过时'??? 什么比较什么?我会假设检查oracle.com上的可用版本,如果系统上安装的当前版本太旧,则会丢弃此警告.
或者启动的应用程序本身带有一些关于Java版本的可用信息或编译时使用的信息?
我需要将传统CORBA系统迁移到任何最新的Java技术.我面临的主要问题是在所提出的系统中提供长期事务(db).目前,客户端(Swing App)保留CORBA服务对象并在实际提交/回滚所有txn之前执行多个db txn.服务层通过out保持连接对象的状态以完成事务.
我想在我的新系统(REST/WS)中重现这种机制,以便Swing客户端/ Web(未来)可以像现在一样工作.
例如:
try {
service1.updateXXData(); // --> insert in to table XX
service2.updateUUData() //--> insert in to table UU
service1.updateZZData(); // --> insert in to table ZZ
service2.updateAAData(); // --> insert in to table AA
service1.commit(); // con.commmit();
service2.commit(); // con.commmit();
}
exception(){
service1.rollback(); // con.rollback();
service2.rollback(); // con.rollback();
}
Run Code Online (Sandbox Code Playgroud)
现在我想将CORBA迁移到任何现代技术,但我仍然逍遥法外,为此寻找解决方案.(关注的是客户端不希望对服务层或数据库层进行任何更改),他们只是想删除CORBA.
我可以选择几种
将CORBA迁移到RMI - >以便当前系统所需的更改最小化,但事务管理,连接池,保留状态需要自行完成.
将CORBA迁移到有状态EJB - >比较RMI所需的更多更改,但更好,因为我可以使用容器管理的连接池,以更好的方式维护状态.
将CORBA迁移到有状态Web服务(SOAP) - >更具未来感,但需要进行大量更改 - 我怎样才能将IDL转换为WSDL,并将调用委托给实现层
将CORBA迁移到REST - >如果可能,最需要 - 但迁移所需的时间很长,从UI层到服务层需要进行代码更改.
非常感谢你提前
我是Git客户端的新手,并且对其操作非常困惑.我非常熟悉其他版本工具,如SVN和CVS.我已经在STS中安装了Git插件,并检查了项目花费了大量时间.我的操作系统是Windows-7,在STS Eclipse 2.8.1上使用Eclipse Git 1.3.0.
最初我不知道"简单提交操作"实际上没有将文件签入到服务器存储库,而是必须"推送到上游".只要没有发现冲突就可以了,但是当我想执行类似的操作时会给它带来很大的麻烦
当我说不起作用时,我的意思是Git抛出异常.
以下是我过去常常遇到的一些错误.
执行merge命令期间捕获异常.org.eclipse.jgit.errors.MissingObjectException:缺少提交c6c4fce9e8a0a228ac1d60f4e5549b5adafa638a
缺少未知的c6c4fce9e8a0a228ac1d60f4e5549b5adafa638a
查找提交
AnyObjectId [c6c4fce9e8a0a228ac1d60f4e5549b5adafa638a]
执行merge命令期间捕获异常.org.eclipse.jgit.errors.MissingObjectException:
在"与refs/remotes/origin/master合并"期间发生内部错误
当发生冲突或提交问题时,我不得不重新设置工作区,并重新完成所有工作.
我觉得很多人会遇到这样的问题,我希望看到我能够更好地解决这个问题.
感谢对此的任何评论.
java ×6
aspectj ×1
corba ×1
ejb ×1
git ×1
hibernate ×1
http-headers ×1
immutability ×1
javaagents ×1
plugins ×1
reflection ×1
rmi ×1
saml-2.0 ×1
security ×1
sequence ×1