Skip to content
Snippets Groups Projects

Release 0.11.0

Merged Henrik tom Wörden requested to merge release-0.11.0 into main
4 files
+ 18
30
Compare changes
  • Side-by-side
  • Inline

Files

@@ -24,6 +24,7 @@ package org.caosdb.server.database.backend.implementation.MySQL;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Types;
import java.util.LinkedList;
import java.util.List;
import org.caosdb.server.database.access.Access;
@@ -42,29 +43,24 @@ public class MySQLGetIDByName extends MySQLTransaction implements GetIDByNameImp
* Therefore {@link #STMT_AND_ROLE}, {@link #STMT_NOT_ROLE}, and {@link #STMT_LIMIT} can as
* additional conditions.
*/
public static final String STMT_GET_ID_BY_NAME =
"Select n.entity_id AS id "
+ "FROM name_data AS n JOIN entities AS e "
+ "ON (n.domain_id=0 AND n.property_id=20 AND e.id = n.entity_id)"
+ "WHERE n.value=?";
public static final String STMT_AND_ROLE = " AND e.role=?";
public static final String STMT_NOT_ROLE = " AND e.role!='ROLE'";
public static final String STMT_LIMIT = " LIMIT ";
public static final String STMT_GET_ID_BY_NAME = "call getIdByName(?, ?, ?)";
@Override
public List<EntityID> execute(final String name, final String role, final String limit)
throws TransactionException {
try {
final String stmtStr =
STMT_GET_ID_BY_NAME
+ (role != null ? STMT_AND_ROLE : STMT_NOT_ROLE)
+ (limit != null ? STMT_LIMIT + limit : "");
final PreparedStatement stmt = prepareStatement(stmtStr);
final PreparedStatement stmt = prepareStatement(STMT_GET_ID_BY_NAME);
stmt.setString(1, name);
if (role != null) {
stmt.setString(2, role);
} else {
stmt.setNull(2, Types.VARCHAR);
}
if (limit != null) {
stmt.setString(3, limit);
} else {
stmt.setNull(3, Types.VARCHAR);
}
try (ResultSet rs = stmt.executeQuery()) {
final List<EntityID> ret = new LinkedList<>();
Loading