所有
我有3个表" Office"," Project"和"员工"
Table Office多对多项目:
Office ebean模型
@ManyToMany()
@JoinTable(name = "project_office",
joinColumns = @JoinColumn(name = "project_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "office_id", referencedColumnName = "id")
)
项目ebean模型
@ManyToMany(mappedBy = "projects")
public List<Employee> employees = new ArrayList<>();
投放多对多员工:
项目ebean模型
@ManyToMany()
@JoinTable(name = "employee_project",
joinColumns = @JoinColumn(name = "employee_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "project_id", referencedColumnName = "id")
)
员工ebean模型
package buscapadraoweb;
import buscaweb.CapturaRecursosWeb;
import java.util.ArrayList;
public class Main {
// busca char em vetor e retorna indice
public static int get_char_ref (char[] vet, char ref ){
for (int i=0; i<vet.length; i++ ){
if (vet[i] == ref){
return i;
}
}
return -1;
}
// busca string em vetor e retorna indice
public static int get_string_ref (String[] vet, String ref ){
for (int i=0; i<vet.length; i++ ){
if (vet[i].equals(ref)){
return i;
}
}
return -1;
}
//retorna o próximo estado, dado o estado atual e o símbolo lido
public static int proximo_estado(char[] alfabeto, int[][] matriz,int estado_atual,char simbolo){
int simbol_indice = get_char_ref(alfabeto, simbolo);
if (simbol_indice != -1){
return matriz[estado_atual][simbol_indice];
}else{
return -1;
}
}
/*
* @param args the command line arguments
*/
public static void main(String[] args) {
//instancia e usa objeto que captura código-fonte de páginas Web
CapturaRecursosWeb crw = new CapturaRecursosWeb();
crw.getListaRecursos().add("http://www.mercadolivre.com");
ArrayList<String> listaCodigos = crw.carregarRecursos();
String codigoHTML = listaCodigos.get(0);
//mapa do alfabeto
char[] alfabeto = new char[11];
alfabeto[0] = '-';
alfabeto[1] = '0';
alfabeto[2] = '1';
alfabeto[3] = '2';
alfabeto[4] = '3';
alfabeto[5] = '4';
alfabeto[6] = '5';
alfabeto[7] = '6';
alfabeto[8] = '7';
alfabeto[9] = '8';
alfabeto[10] = '9';
//mapa de estados
String[] estados = new String[10];
estados[0] = "q0";
estados[1] = "q1";
estados[2] = "q3";
estados[3] = "q4";
estados[4] = "q5";
estados[5] = "q6";
estados[6] = "q7";
estados[7] = "q8";
estados[8] = "q9";
estados[9] = "q10";
String estado_inicial = "q0";
//estados finais
String[] estados_finais = new String[1];
estados_finais[0] = "q10";
//tabela de transição de AFD para reconhecimento números de dois dígitos
int[][] matriz = new int[3][11];
//transições de q0
matriz[get_string_ref(estados, "q0")][get_char_ref(alfabeto, '0')] = get_string_ref(estados, "q1");
matriz[get_string_ref(estados, "q0")][get_char_ref(alfabeto, '1')] = get_string_ref(estados, "q1");
matriz[get_string_ref(estados, "q0")][get_char_ref(alfabeto, '2')] = get_string_ref(estados, "q1");
matriz[get_string_ref(estados, "q0")][get_char_ref(alfabeto, '3')] = get_string_ref(estados, "q1");
matriz[get_string_ref(estados, "q0")][get_char_ref(alfabeto, '4')] = get_string_ref(estados, "q1");
matriz[get_string_ref(estados, "q0")][get_char_ref(alfabeto, '5')] = get_string_ref(estados, "q1");
matriz[get_string_ref(estados, "q0")][get_char_ref(alfabeto, '6')] = get_string_ref(estados, "q1");
matriz[get_string_ref(estados, "q0")][get_char_ref(alfabeto, '7')] = get_string_ref(estados, "q1");
matriz[get_string_ref(estados, "q0")][get_char_ref(alfabeto, '8')] = get_string_ref(estados, "q1");
matriz[get_string_ref(estados, "q0")][get_char_ref(alfabeto, '9')] = get_string_ref(estados, "q1");
//transições de q1
matriz[get_string_ref(estados, "q1")][get_char_ref(alfabeto, '0')] = get_string_ref(estados, "q2");
matriz[get_string_ref(estados, "q1")][get_char_ref(alfabeto, '1')] = get_string_ref(estados, "q2");
matriz[get_string_ref(estados, "q1")][get_char_ref(alfabeto, '2')] = get_string_ref(estados, "q2");
matriz[get_string_ref(estados, "q1")][get_char_ref(alfabeto, '3')] = get_string_ref(estados, "q2");
matriz[get_string_ref(estados, "q1")][get_char_ref(alfabeto, '4')] = get_string_ref(estados, "q2");
matriz[get_string_ref(estados, "q1")][get_char_ref(alfabeto, '5')] = get_string_ref(estados, "q2");
matriz[get_string_ref(estados, "q1")][get_char_ref(alfabeto, '6')] = get_string_ref(estados, "q2");
matriz[get_string_ref(estados, "q1")][get_char_ref(alfabeto, '7')] = get_string_ref(estados, "q2");
matriz[get_string_ref(estados, "q1")][get_char_ref(alfabeto, '8')] = get_string_ref(estados, "q2");
matriz[get_string_ref(estados, "q1")][get_char_ref(alfabeto, '9')] = get_string_ref(estados, "q2");
//transições de q2
// ************** ArrayIndexOutOfBoundsException here ***************
matriz[get_string_ref(estados, "q2")][get_char_ref(alfabeto, '0')] = get_string_ref(estados, "q3");
matriz[get_string_ref(estados, "q2")][get_char_ref(alfabeto, '1')] = get_string_ref(estados, "q3");
matriz[get_string_ref(estados, "q2")][get_char_ref(alfabeto, '2')] = get_string_ref(estados, "q3");
matriz[get_string_ref(estados, "q2")][get_char_ref(alfabeto, '3')] = get_string_ref(estados, "q3");
matriz[get_string_ref(estados, "q2")][get_char_ref(alfabeto, '4')] = get_string_ref(estados, "q3");
matriz[get_string_ref(estados, "q2")][get_char_ref(alfabeto, '5')] = get_string_ref(estados, "q3");
matriz[get_string_ref(estados, "q2")][get_char_ref(alfabeto, '6')] = get_string_ref(estados, "q3");
matriz[get_string_ref(estados, "q2")][get_char_ref(alfabeto, '7')] = get_string_ref(estados, "q3");
matriz[get_string_ref(estados, "q2")][get_char_ref(alfabeto, '8')] = get_string_ref(estados, "q3");
matriz[get_string_ref(estados, "q2")][get_char_ref(alfabeto, '9')] = get_string_ref(estados, "q3");
//transições de q3
matriz[get_string_ref(estados, "q3")][get_char_ref(alfabeto, '0')] = get_string_ref(estados, "q4");
matriz[get_string_ref(estados, "q3")][get_char_ref(alfabeto, '1')] = get_string_ref(estados, "q4");
matriz[get_string_ref(estados, "q3")][get_char_ref(alfabeto, '2')] = get_string_ref(estados, "q4");
matriz[get_string_ref(estados, "q3")][get_char_ref(alfabeto, '3')] = get_string_ref(estados, "q4");
matriz[get_string_ref(estados, "q3")][get_char_ref(alfabeto, '4')] = get_string_ref(estados, "q4");
matriz[get_string_ref(estados, "q3")][get_char_ref(alfabeto, '5')] = get_string_ref(estados, "q4");
matriz[get_string_ref(estados, "q3")][get_char_ref(alfabeto, '6')] = get_string_ref(estados, "q4");
matriz[get_string_ref(estados, "q3")][get_char_ref(alfabeto, '7')] = get_string_ref(estados, "q4");
matriz[get_string_ref(estados, "q3")][get_char_ref(alfabeto, '8')] = get_string_ref(estados, "q4");
matriz[get_string_ref(estados, "q3")][get_char_ref(alfabeto, '9')] = get_string_ref(estados, "q4");
//transições de q4
matriz[get_string_ref(estados, "q4")][get_char_ref(alfabeto, '-')] = get_string_ref(estados, "q5");
//transições de q5
matriz[get_string_ref(estados, "q5")][get_char_ref(alfabeto, '0')] = get_string_ref(estados, "q6");
matriz[get_string_ref(estados, "q5")][get_char_ref(alfabeto, '1')] = get_string_ref(estados, "q6");
matriz[get_string_ref(estados, "q5")][get_char_ref(alfabeto, '2')] = get_string_ref(estados, "q6");
matriz[get_string_ref(estados, "q5")][get_char_ref(alfabeto, '3')] = get_string_ref(estados, "q6");
matriz[get_string_ref(estados, "q5")][get_char_ref(alfabeto, '4')] = get_string_ref(estados, "q6");
matriz[get_string_ref(estados, "q5")][get_char_ref(alfabeto, '5')] = get_string_ref(estados, "q6");
matriz[get_string_ref(estados, "q5")][get_char_ref(alfabeto, '6')] = get_string_ref(estados, "q6");
matriz[get_string_ref(estados, "q5")][get_char_ref(alfabeto, '7')] = get_string_ref(estados, "q6");
matriz[get_string_ref(estados, "q5")][get_char_ref(alfabeto, '8')] = get_string_ref(estados, "q6");
matriz[get_string_ref(estados, "q5")][get_char_ref(alfabeto, '9')] = get_string_ref(estados, "q6");
//transições de q6
matriz[get_string_ref(estados, "q6")][get_char_ref(alfabeto, '0')] = get_string_ref(estados, "q7");
matriz[get_string_ref(estados, "q6")][get_char_ref(alfabeto, '1')] = get_string_ref(estados, "q7");
matriz[get_string_ref(estados, "q6")][get_char_ref(alfabeto, '2')] = get_string_ref(estados, "q7");
matriz[get_string_ref(estados, "q6")][get_char_ref(alfabeto, '3')] = get_string_ref(estados, "q7");
matriz[get_string_ref(estados, "q6")][get_char_ref(alfabeto, '4')] = get_string_ref(estados, "q7");
matriz[get_string_ref(estados, "q6")][get_char_ref(alfabeto, '5')] = get_string_ref(estados, "q7");
matriz[get_string_ref(estados, "q6")][get_char_ref(alfabeto, '6')] = get_string_ref(estados, "q7");
matriz[get_string_ref(estados, "q6")][get_char_ref(alfabeto, '7')] = get_string_ref(estados, "q7");
matriz[get_string_ref(estados, "q6")][get_char_ref(alfabeto, '8')] = get_string_ref(estados, "q7");
matriz[get_string_ref(estados, "q6")][get_char_ref(alfabeto, '9')] = get_string_ref(estados, "q7");
//transições de q7
matriz[get_string_ref(estados, "q7")][get_char_ref(alfabeto, '-')] = get_string_ref(estados, "q8");
//transições de q8
matriz[get_string_ref(estados, "q8")][get_char_ref(alfabeto, '0')] = get_string_ref(estados, "q9");
matriz[get_string_ref(estados, "q8")][get_char_ref(alfabeto, '1')] = get_string_ref(estados, "q9");
matriz[get_string_ref(estados, "q8")][get_char_ref(alfabeto, '2')] = get_string_ref(estados, "q9");
matriz[get_string_ref(estados, "q8")][get_char_ref(alfabeto, '3')] = get_string_ref(estados, "q9");
matriz[get_string_ref(estados, "q8")][get_char_ref(alfabeto, '4')] = get_string_ref(estados, "q9");
matriz[get_string_ref(estados, "q8")][get_char_ref(alfabeto, '5')] = get_string_ref(estados, "q9");
matriz[get_string_ref(estados, "q8")][get_char_ref(alfabeto, '6')] = get_string_ref(estados, "q9");
matriz[get_string_ref(estados, "q8")][get_char_ref(alfabeto, '7')] = get_string_ref(estados, "q9");
matriz[get_string_ref(estados, "q8")][get_char_ref(alfabeto, '8')] = get_string_ref(estados, "q9");
matriz[get_string_ref(estados, "q8")][get_char_ref(alfabeto, '9')] = get_string_ref(estados, "q9");
//transições de q9
matriz[get_string_ref(estados, "q9")][get_char_ref(alfabeto, '0')] = get_string_ref(estados, "q10");
matriz[get_string_ref(estados, "q9")][get_char_ref(alfabeto, '1')] = get_string_ref(estados, "q10");
matriz[get_string_ref(estados, "q9")][get_char_ref(alfabeto, '2')] = get_string_ref(estados, "q10");
matriz[get_string_ref(estados, "q9")][get_char_ref(alfabeto, '3')] = get_string_ref(estados, "q10");
matriz[get_string_ref(estados, "q9")][get_char_ref(alfabeto, '4')] = get_string_ref(estados, "q10");
matriz[get_string_ref(estados, "q9")][get_char_ref(alfabeto, '5')] = get_string_ref(estados, "q10");
matriz[get_string_ref(estados, "q9")][get_char_ref(alfabeto, '6')] = get_string_ref(estados, "q10");
matriz[get_string_ref(estados, "q9")][get_char_ref(alfabeto, '7')] = get_string_ref(estados, "q10");
matriz[get_string_ref(estados, "q9")][get_char_ref(alfabeto, '8')] = get_string_ref(estados, "q10");
matriz[get_string_ref(estados, "q9")][get_char_ref(alfabeto, '9')] = get_string_ref(estados, "q10");
//transições de q10
matriz[get_string_ref(estados, "q10")][get_char_ref(alfabeto, '0')] = -1;
matriz[get_string_ref(estados, "q10")][get_char_ref(alfabeto, '1')] = -1;
matriz[get_string_ref(estados, "q10")][get_char_ref(alfabeto, '2')] = -1;
matriz[get_string_ref(estados, "q10")][get_char_ref(alfabeto, '3')] = -1;
matriz[get_string_ref(estados, "q10")][get_char_ref(alfabeto, '4')] = -1;
matriz[get_string_ref(estados, "q10")][get_char_ref(alfabeto, '5')] = -1;
matriz[get_string_ref(estados, "q10")][get_char_ref(alfabeto, '6')] = -1;
matriz[get_string_ref(estados, "q10")][get_char_ref(alfabeto, '7')] = -1;
matriz[get_string_ref(estados, "q10")][get_char_ref(alfabeto, '8')] = -1;
matriz[get_string_ref(estados, "q10")][get_char_ref(alfabeto, '9')] = -1;
matriz[get_string_ref(estados, "q10")][get_char_ref(alfabeto, '-')] = -1;
int estado = get_string_ref (estados, estado_inicial);
int estado_anterior = -1;
ArrayList<String> palavras_reconhecidas = new ArrayList();
String palavra = "";
//varre o código-fonte de um código
for (int i=0; i<codigoHTML.length(); i++){
estado_anterior = estado;
estado = proximo_estado(alfabeto, matriz, estado, codigoHTML.charAt(i));
//se o não há transição
if (estado == -1){
//pega estado inicial
estado = get_string_ref(estados, estado_inicial);
// se o estado anterior foi um estado final
if (get_string_ref(estados_finais, estados[estado_anterior]) != -1){
//se a palavra não é vazia adiciona palavra reconhecida
if ( ! palavra.equals("")){
palavras_reconhecidas.add(palavra);
}
// se ao analisar este caracter não houve transição
// teste-o novamente, considerando que o estado seja inicial
i--;
}
//zera palavra
palavra = "";
}else{
//se houver transição válida, adiciona caracter a palavra
palavra += codigoHTML.charAt(i);
}
}
//foreach no Java para exibir todas as palavras reconhecidas
for (String p: palavras_reconhecidas){
System.out.println (p);
}
}
我想在表employee_project列office_id中。我不明白该怎么做。请帮帮我