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 com.cloud.network.security.SecurityRule.SecurityRuleType;
|
||||
import com.cloud.utils.db.JoinType;
|
||||
|
||||
@Entity
|
||||
@Table(name = ("security_group"))
|
||||
@JoinType(type = "left")
|
||||
@SecondaryTable(name = "security_group_rule", pkJoinColumns = { @PrimaryKeyJoinColumn(name = "id", referencedColumnName = "security_group_id") })
|
||||
public class SecurityGroupRulesVO implements SecurityGroupRules {
|
||||
@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);
|
||||
ArrayList<String> secondaryTables = new ArrayList<String>();
|
||||
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());
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user