如何从现有Java代码生成UML图(尤其是序列图)?
我有一个看起来像这样的查询:
SELECT DISTINCT share.rooms
FROM Shares share
left join share.rooms.buildingAdditions.buildings.buildingInfoses as bi
... //where clause omitted
ORDER BY share.rooms.floors.floorOrder, share.rooms.roomNumber,
share.rooms.firstEffectiveAt, share.shareNumber, share.sharePercent
Run Code Online (Sandbox Code Playgroud)
这导致以下异常:
Caused by: org.hibernate.exception.SQLGrammarException: ORA-01791: not a SELECTed expression
Run Code Online (Sandbox Code Playgroud)
如果我删除DISTINCT关键字,查询运行没有问题.如果我删除order by子句,则查询运行没有问题.不幸的是,我似乎无法获得没有重复的有序结果集.
我有一个模拟我的请求的类,比如
class Venue {
private String city;
private String place;
// Respective getters and setters.
}
Run Code Online (Sandbox Code Playgroud)
我想支持一个RESTful URL来获取有关场地的信息.所以我有这样的控制器方法.
@RequestMapping(value = "/venue/{city}/{place}", method = "GET")
public String getVenueDetails(@PathVariable("city") String city, @PathVariable("place") String place, Model model) {
// code
}
Run Code Online (Sandbox Code Playgroud)
有没有办法,我可以说在春天将我的路径变量绑定到模型对象(在本例中为Venue)而不是获取每个单独的参数?
我想在Spring Java配置中创建一个Spring bean,并在运行时传递一些构造函数参数.我创建了以下Java配置,其中有一个bean fixedLengthReport,它需要构造函数中的一些参数.
@Configuration
public class AppConfig {
@Autowrire
Dao dao;
@Bean
@Scope(value = "prototype")
**//SourceSystem can change at runtime**
public FixedLengthReport fixedLengthReport(String sourceSystem) {
return new TdctFixedLengthReport(sourceSystem, dao);
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到的错误是sourceSystem无法连接,因为没有找到bean.如何使用运行时构造函数参数创建bean?
我使用的是Spring 4.2
Clojure STM(dosync)方法和Java同步Block有什么区别?
我正在阅读"睡觉的理发师"问题下面的代码.(http://www.bestinclass.dk/index.clj/2009/09/scala-vs-clojure-round-2-concurrency.html)
(defn the-shop [a]
(print "[k] entering shop" a)
(dosync
(if (< (count @queue) seats)
(alter queue conj a)
(print "[s] turning away customer" a))))
Run Code Online (Sandbox Code Playgroud)
为了避免竞争条件,dosync使用,所以我问自己"Java同步块有什么区别(STM)"?它会阻止这个关键代码吗?
提前致谢 !丹塔斯
我正在尝试重构以下代码:
class Base {
private Object a, b, <...>; // there's like 10 of these attributes of different type
public Object a() {
return a;
}
public Object b() {
return b;
}
// more getters like the ones above
}
class RootNode extends Base { }
class BranchNode extends Base {
private RootNode root; // passed via constructor
public Object a() {
Object value = super.a();
return value != null ? value : root.a();
}
public Object b() { …Run Code Online (Sandbox Code Playgroud) 这并不完全像标题所说的那样,但接近。考虑这些 Spring bean:
@Bean
class BeanA {
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = EvilException.class)
public void methodA() {
/* ... some actions */
if (condition) {
throw new EvilException();
}
}
}
@Bean
class BeanB {
@Autowired private BeanA beanA;
final int MAX_TRIES = 3;
@Transactional(propagation = Propagation.NESTED)
public void methodB() {
// prepare to call Bean A
try {
beanA.methodA();
/* maybe do some more things */
}
catch (EvilException e) {
/* recover from evil */
}
}
} …Run Code Online (Sandbox Code Playgroud) 我将我的应用程序从java 8迁移到java 10.但是现在我在尝试将某些东西存储在数据库中时看到以下异常
Caused by: javax.persistence.RollbackException: Error while committing the transaction
at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:77) ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final]
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:101) ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final]
at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:517) ~[spring-orm-4.3.18.RELEASE.jar:4.3.18.RELEASE]
... 91 more
Caused by: org.hibernate.AssertionFailure: Exception releasing cache locks
at org.hibernate.engine.spi.ActionQueue$AfterTransactionCompletionProcessQueue.afterTransactionCompletion(ActionQueue.java:990) ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final]
at org.hibernate.engine.spi.ActionQueue.afterTransactionCompletion(ActionQueue.java:513) ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final]
at org.hibernate.internal.SessionImpl.afterTransactionCompletion(SessionImpl.java:2501) ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final]
at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.afterTransactionCompletion(JdbcCoordinatorImpl.java:479) ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final]
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.afterCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:198) ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final]
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$400(JdbcResourceLocalTransactionCoordinatorImpl.java:39) ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final]
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:273) ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final]
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:98) ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final]
at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:517) ~[spring-orm-4.3.18.RELEASE.jar:4.3.18.RELEASE]
... 91 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private jdk.internal.reflect.ConstructorAccessorImpl jdk.internal.reflect.DelegatingConstructorAccessorImpl.delegate accessible: module java.base does not "opens jdk.internal.reflect" to unnamed module …Run Code Online (Sandbox Code Playgroud) 将 Android Studio 更新到 3.1 后,我在加载新的模板项目时遇到错误。
尝试使用和不使用此选项,但没有用:
maven {
url "https://maven.google.com"
}
Run Code Online (Sandbox Code Playgroud)
在构建过程中,我看到以下消息:
Caused by: org.gradle.internal.resolve.ModuleVersionResolveException:
Could not resolve com.android.tools.build:gradle:3.1.0.
<6 internal calls>
... 128 more
Caused by: org.gradle.api.resources.ResourceException:
Could not get resource 'https://dl/google.com/dl/android/maven2/com/android/tools/build/gradle/3.1.0/gradle-3.1.0.pom' <21 internal calls>
... 133 more
Caused by: org.gradle.internal.resource.transport.http.HttpRequestException:
Could not GET 'https://dl/google.com/dl/android/maven2/com/android/tools/build/gradle/3.1.0/gradle-3.1.0.pom'. <16 internal calls>
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to dl.google.com:433 [dl.google.com/216.58.199.142] failed
Run Code Online (Sandbox Code Playgroud)
构建.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "com.example.am.myapplicationtest"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0" …Run Code Online (Sandbox Code Playgroud) 我有一个要求,我需要在工作日的上午9点到下午5点之间运行Java程序。时区将始终为UTC。该程序应从上午9点开始,并应在下午5点之前结束。如果无法在下午5点之前完成,则应睡到第二天08:59:59。如果第二天是周末,那么应该从星期一开始。
使用Joda时间的两个日期之间以秒为单位的文章差异?解释了如何获取两个预定义日期之间的秒差,但是我一直想计算下一个工作日上午9点与当前时间之间的差。
我正在考虑通过计算两个日期之间的时间差来使用Thread.sleep()。是否有一个Joda Time API,可以用来计算两个日期之间的时差?
我已经尝试获取当前工作日和第二天上午9点(如果它是工作日),计算这两个纪元之间的差,并将该值用于Thread.sleep,但这有点混乱。
以下是我使用的伪代码
getNextDayEpoch函数包含if / else代码,使用确定日期是工作日/周末java来确定是工作日还是周末
根据是工作日还是周末,我得到相应的纪元值。
currentEpoch = getCurrentEpoch()
nextDayEpoch = getNextDayEpoch()
difference = nextDayEpoch - currentDayEpoch
try {
Thread.sleep(difference);
} catch (InterruptedException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
您能提出更好的建议吗?