mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
added JoinType to remove the j2ee source code in CloudStack
This commit is contained in:
parent
2ce632cf0b
commit
e83c60a057
@ -26,9 +26,11 @@ import javax.persistence.SecondaryTable;
|
|||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
|
||||||
import com.cloud.network.security.SecurityRule.SecurityRuleType;
|
import com.cloud.network.security.SecurityRule.SecurityRuleType;
|
||||||
|
import com.cloud.utils.db.JoinType;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = ("security_group"))
|
@Table(name = ("security_group"))
|
||||||
|
@JoinType(type = "left")
|
||||||
@SecondaryTable(name = "security_group_rule", pkJoinColumns = { @PrimaryKeyJoinColumn(name = "id", referencedColumnName = "security_group_id") })
|
@SecondaryTable(name = "security_group_rule", pkJoinColumns = { @PrimaryKeyJoinColumn(name = "id", referencedColumnName = "security_group_id") })
|
||||||
public class SecurityGroupRulesVO implements SecurityGroupRules {
|
public class SecurityGroupRulesVO implements SecurityGroupRules {
|
||||||
@Id
|
@Id
|
||||||
|
|||||||
32
utils/src/com/cloud/utils/db/JoinType.java
Executable file
32
utils/src/com/cloud/utils/db/JoinType.java
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
package com.cloud.utils.db;
|
||||||
|
|
||||||
|
import static java.lang.annotation.ElementType.TYPE;
|
||||||
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JoinType is only used with SecondaryTable. Temporary solution.
|
||||||
|
*/
|
||||||
|
@Target(TYPE)
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
public @interface JoinType {
|
||||||
|
String type() default "inner";
|
||||||
|
}
|
||||||
@ -539,7 +539,12 @@ public class SqlGenerator {
|
|||||||
SecondaryTable[] sts = DbUtil.getSecondaryTables(clazz);
|
SecondaryTable[] sts = DbUtil.getSecondaryTables(clazz);
|
||||||
ArrayList<String> secondaryTables = new ArrayList<String>();
|
ArrayList<String> secondaryTables = new ArrayList<String>();
|
||||||
for (SecondaryTable st : sts) {
|
for (SecondaryTable st : sts) {
|
||||||
addPrimaryKeyJoinColumns(innerJoin, tableName, st.name(), "", st.pkJoinColumns());
|
JoinType jt = clazz.getAnnotation(JoinType.class);
|
||||||
|
String join = null;
|
||||||
|
if (jt != null) {
|
||||||
|
join = jt.type();
|
||||||
|
}
|
||||||
|
addPrimaryKeyJoinColumns(innerJoin, tableName, st.name(), join, st.pkJoinColumns());
|
||||||
secondaryTables.add(st.name());
|
secondaryTables.add(st.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user