diff --git a/src/main/java/org/codetracker/blame/benchmark/BlameDiffer.java b/src/main/java/org/codetracker/blame/benchmark/BlameDiffer.java index e1579c0f6b8..9545f22ae2a 100644 --- a/src/main/java/org/codetracker/blame/benchmark/BlameDiffer.java +++ b/src/main/java/org/codetracker/blame/benchmark/BlameDiffer.java @@ -7,20 +7,14 @@ import org.eclipse.jgit.lib.Repository; import java.util.*; -import java.util.function.Predicate; +import java.util.function.BiPredicate; /* Created by pourya on 2024-07-14*/ public class BlameDiffer { - private final EnumSet blamerFactories; - private EnumMap> blameResults; - private List content; - private Predicate emptyLinesCondition; - private Repository repository; - private String commitId; - private String filePath; - private final Map codeElementMap = new LinkedHashMap<>(); - private int legitSize; + protected final EnumSet blamerFactories; + protected LineNumberToCommitIDRecordManager benchmarkRecordManager; + protected BiPredicate> emptyLinesCondition = (lineNumber, content) -> content.get(lineNumber-1).trim().isEmpty(); public BlameDiffer(EnumSet blamerFactories){ this.blamerFactories = blamerFactories; @@ -38,30 +32,37 @@ private EnumMap> runBlamers(Repository repo return results; } - private static void verify(EnumMap> blameResults) { - if (blameResults.size() != 2) + protected boolean verify(EnumMap> results) { + if (results.size() != 2) throw new RuntimeException("BlameDiffer only works with two blamers"); + return true; } - public Map> diff(Repository repository, String commitId, String filePath) throws Exception { - this.repository = repository; - this.commitId = commitId; - this.filePath = filePath; - this.blameResults = runBlamers(repository, commitId, filePath); - this.content = Utils.getFileContentByCommit(repository, commitId, filePath); - this.emptyLinesCondition = lineNumber -> content.get(lineNumber-1).trim().isEmpty(); - verify(blameResults); - LineNumberToCommitIDRecordManager benchmarkRecordManager = new LineNumberToCommitIDRecordManager(); + public final BlameDifferResult diff(Repository repository, String commitId, String filePath) throws Exception { + EnumMap> blameResults = prepareResults(repository, commitId, filePath); + List content = Utils.getFileContentByCommit(repository, commitId, filePath); + benchmarkRecordManager = new LineNumberToCommitIDRecordManager(); benchmarkRecordManager.diff(blameResults); Map> table = benchmarkRecordManager.getRegistry(); - table.entrySet().removeIf(entry -> emptyLinesCondition.test(entry.getKey())); - legitSize = table.size(); + table.entrySet().removeIf(entry -> emptyLinesCondition.test(entry.getKey(), content)); + int legitSize = table.size(); + table = process(repository, commitId, filePath, table); + return new BlameDifferResult(table, makeCodeElementMap(table.keySet(), repository, commitId, filePath), legitSize); + } + + protected Map> process(Repository repository, String commitId, String filePath, Map> table) { table.entrySet().removeIf(entry -> entry.getValue().values().stream().distinct().count() == 1); - makeCodeElementMap(table.keySet()); return table; } - void makeCodeElementMap(Set lineNumbers){ + private EnumMap> prepareResults(Repository repository, String commitId, String filePath) throws Exception { + EnumMap> blameResults = runBlamers(repository, commitId, filePath); + verify(blameResults); + return blameResults; + } + + Map makeCodeElementMap(Set lineNumbers, Repository repository, String commitId, String filePath){ + Map codeElementMap = new LinkedHashMap<>(); for (Integer lineNumber : lineNumbers) { try { codeElementMap.put(lineNumber, @@ -70,10 +71,6 @@ void makeCodeElementMap(Set lineNumbers){ throw new RuntimeException(e); } } - } - - public Map getCodeElementMap() { return codeElementMap; } - public int getLegitSize() {return legitSize;} } diff --git a/src/main/java/org/codetracker/blame/benchmark/BlameDifferDriver.java b/src/main/java/org/codetracker/blame/benchmark/BlameDifferDriver.java index 38e44922187..d73701dadad 100644 --- a/src/main/java/org/codetracker/blame/benchmark/BlameDifferDriver.java +++ b/src/main/java/org/codetracker/blame/benchmark/BlameDifferDriver.java @@ -16,9 +16,13 @@ public class BlameDifferDriver { private static final String REPOS_PATH = System.getProperty("user.dir") + "/tmp"; private static final EnumSet blamerFactories = EnumSet.of( - BlamerFactory.CliGitBlame, + BlamerFactory.CliGitBlameIgnoringWhiteSpace, + BlamerFactory.CliGitBlameDefault, BlamerFactory.FileTrackerBlame ); + + private static final BlameDiffer blameDiffer = new BlameDifferOneWithMany(blamerFactories, BlamerFactory.FileTrackerBlame); + private static final String[][] dummies = { {"https://github.com/checkstyle/checkstyle/commit/119fd4fb33bef9f5c66fc950396669af842c21a3", "src/main/java/com/puppycrawl/tools/checkstyle/Checker.java"}, {"https://github.com/javaparser/javaparser/commit/97555053af3025556efe1a168fd7943dac28a2a6", "javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Difference.java"}, @@ -59,10 +63,10 @@ public static void process(String url, String filePath, StatsCollector statsColl String project = getProject(url); String ownerSlashProject = owner + "/" + project; Repository repository = gitService.cloneIfNotExists(REPOS_PATH + "/" + ownerSlashProject, URLHelper.getRepo(url)); - BlameDiffer blameDiffer = new BlameDiffer(blamerFactories); - Map> result = blameDiffer.diff(repository, commitId, filePath); - statsCollector.process(result, blameDiffer.getLegitSize(), blameDiffer.getCodeElementMap()); - new CsvWriter(owner, project, commitId, filePath, blameDiffer.getCodeElementMap()).writeToCSV(result); + BlameDifferResult blameDifferResult = blameDiffer.diff(repository, commitId, filePath); + Map> result = blameDifferResult.getTable(); + statsCollector.process(result, blameDifferResult.getLegitSize(), blameDifferResult.getCodeElementMap()); + new CsvWriter(owner, project, commitId, filePath, blameDifferResult.getCodeElementMap()).writeToCSV(result); statsCollector.writeInfo(); } } diff --git a/src/main/java/org/codetracker/blame/benchmark/BlameDifferOneWithMany.java b/src/main/java/org/codetracker/blame/benchmark/BlameDifferOneWithMany.java new file mode 100644 index 00000000000..b624dccbf9e --- /dev/null +++ b/src/main/java/org/codetracker/blame/benchmark/BlameDifferOneWithMany.java @@ -0,0 +1,34 @@ +package org.codetracker.blame.benchmark; + +import org.codetracker.blame.model.LineBlameResult; +import org.eclipse.jgit.lib.Repository; + +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.List; +import java.util.Map; + +/* Created by pourya on 2024-09-03*/ +public class BlameDifferOneWithMany extends BlameDiffer { + + protected final BlamerFactory subject; + public BlameDifferOneWithMany(EnumSet blamerFactories, BlamerFactory subject) { + super(blamerFactories); + this.subject = subject; + } + + @Override + protected Map> process(Repository repository, String commitId, String filePath, Map> table) { + table.entrySet().removeIf(entry -> { + EnumMap factories = entry.getValue(); + String subject_value = factories.get(subject); + return factories.values().stream().filter(value -> value.equals(subject_value)).count() > 1; + }); + return table; + } + + @Override + protected boolean verify(EnumMap> results) { + return true; //TODO: + } +} diff --git a/src/main/java/org/codetracker/blame/benchmark/BlameDifferResult.java b/src/main/java/org/codetracker/blame/benchmark/BlameDifferResult.java new file mode 100644 index 00000000000..0431cd19ca0 --- /dev/null +++ b/src/main/java/org/codetracker/blame/benchmark/BlameDifferResult.java @@ -0,0 +1,30 @@ +package org.codetracker.blame.benchmark; + +import org.codetracker.api.CodeElement; + +import java.util.EnumMap; +import java.util.Map; + +public class BlameDifferResult{ + private final Map> table; + private final Map codeElementMap; + private final int legitSize; + + public BlameDifferResult(Map> table, Map codeElementMap, int legitSize) { + this.table = table; + this.codeElementMap = codeElementMap; + this.legitSize = legitSize; + } + + public Map> getTable() { + return table; + } + + public Map getCodeElementMap() { + return codeElementMap; + } + + public int getLegitSize() { + return legitSize; + } +} diff --git a/src/main/java/org/codetracker/blame/benchmark/BlamerFactory.java b/src/main/java/org/codetracker/blame/benchmark/BlamerFactory.java index 109835f5e76..aa078d4caed 100644 --- a/src/main/java/org/codetracker/blame/benchmark/BlamerFactory.java +++ b/src/main/java/org/codetracker/blame/benchmark/BlamerFactory.java @@ -9,7 +9,8 @@ public enum BlamerFactory { JGitBlameWithFollow(new JGitBlame()), - CliGitBlame(new CliGitBlame()), + CliGitBlameIgnoringWhiteSpace(new CliGitBlame(true)), + CliGitBlameDefault(new CliGitBlame(false)), CodeTrackerBlame(new CodeTrackerBlame()), FileTrackerBlame(new FileTrackerBlame()); private final IBlame blamer; diff --git a/src/main/java/org/codetracker/blame/impl/CliGitBlame.java b/src/main/java/org/codetracker/blame/impl/CliGitBlame.java index 620b68442b8..88a30811b17 100644 --- a/src/main/java/org/codetracker/blame/impl/CliGitBlame.java +++ b/src/main/java/org/codetracker/blame/impl/CliGitBlame.java @@ -15,15 +15,22 @@ /* Created by pourya on 2024-08-22*/ public class CliGitBlame implements IBlame { - + private final boolean ignore_whitespace; + public CliGitBlame(boolean ignore_whitespace) { + this.ignore_whitespace = ignore_whitespace; + } @Override public List blameFile(Repository repository, String commitId, String filePath) throws Exception { List blameResults = new ArrayList<>(); Process process = null; try { - // Construct the git blame command with the commit and file path - String[] command = {"git", "blame", "-n", "-w", "--follow", commitId, "--", filePath}; + String[] command; + if (ignore_whitespace) { + command = new String[]{"git", "blame", "-n", "-w", "--follow", commitId, "--", filePath}; + } else { + command = new String[]{"git", "blame", "-n", "--follow", commitId, "--", filePath}; + } ProcessBuilder processBuilder = new ProcessBuilder(command); processBuilder.directory(repository.getDirectory()); @@ -34,58 +41,9 @@ public List blameFile(Repository repository, String commitId, S String line; int lineNumber = 1; while ((line = reader.readLine()) != null) { - if (line.charAt(0) == '^') { - line = line.substring(1); - } - // Extract commitId, committer, commitDate, filePath, and beforeFilePath from the blame line - String[] parts = line.split("\\s+", 3); - String blameCommitId = parts[0].trim(); // Extract the commit ID - String prevFilePath = parts[1].trim(); - - // Find the index of the first space to separate the number - int firstSpaceIndex = parts[2].indexOf(" "); - int resultLineNumber = -1; - try { - resultLineNumber = Integer.parseInt(parts[2].substring(0, firstSpaceIndex)); - } - catch (NumberFormatException e) { - - } - - parts[2] = parts[2].substring(firstSpaceIndex + 1); - - String[] meta = parts[2].split("\\s{2,}"); // Split on at least 2 spaces - String commiter = ""; - long commitTime = 0; - - // Regex to capture the timestamp - Pattern pattern = Pattern.compile("(.*?)(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2} [+-]\\d{4})"); - Matcher matcher = pattern.matcher(parts[2]); - - if (matcher.find()) { - // Extract the committer and timestamp - commiter = matcher.group(1).trim(); // Everything before the timestamp - commiter = commiter.substring(1); // Remove the parentheses - String timestamp = matcher.group(2).trim(); // Timestamp - - - // Define the formatter for the timestamp - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss Z"); - - // Parse the timestamp string - OffsetDateTime offsetDateTime = OffsetDateTime.parse(timestamp, formatter); - - // Convert to Instant - Instant instant = offsetDateTime.toInstant(); - commitTime = instant.toEpochMilli() / 1000; - } - LineBlameResult result = new LineBlameResult(blameCommitId, filePath, prevFilePath, commiter, commitTime, resultLineNumber, lineNumber); - blameResults.add(result); - - + blameResults.add(getLineBlameResult(line, filePath, lineNumber)); lineNumber++; } - int exitCode = process.waitFor(); if (exitCode != 0) { throw new Exception("Error executing git blame command"); @@ -99,6 +57,56 @@ public List blameFile(Repository repository, String commitId, S return blameResults; } + private static LineBlameResult getLineBlameResult(String line, String filePath, int lineNumber) { + if (line.charAt(0) == '^') { + line = line.substring(1); + } + // Extract commitId, committer, commitDate, filePath, and beforeFilePath from the blame line + String[] parts = line.split("\\s+", 3); + String blameCommitId = parts[0].trim(); // Extract the commit ID + String prevFilePath = parts[1].trim(); + + // Find the index of the first space to separate the number + int firstSpaceIndex = parts[2].indexOf(" "); + int resultLineNumber = -1; + try { + resultLineNumber = Integer.parseInt(parts[2].substring(0, firstSpaceIndex)); + parts[2] = parts[2].substring(firstSpaceIndex + 1); + } + catch (NumberFormatException e) { +// System.out.println("Error parsing line number: " + parts[2].substring(0, firstSpaceIndex)); + parts[2] = parts[2].substring(firstSpaceIndex + 1); + } + + + String[] meta = parts[2].split("\\s{2,}"); // Split on at least 2 spaces + String commiter = ""; + long commitTime = 0; + + // Regex to capture the timestamp + Pattern pattern = Pattern.compile("(.*?)(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2} [+-]\\d{4})"); + Matcher matcher = pattern.matcher(parts[2]); + + if (matcher.find()) { + // Extract the committer and timestamp + commiter = matcher.group(1).trim(); // Everything before the timestamp + commiter = commiter.substring(1); // Remove the parentheses + String timestamp = matcher.group(2).trim(); // Timestamp + + + // Define the formatter for the timestamp + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss Z"); + + // Parse the timestamp string + OffsetDateTime offsetDateTime = OffsetDateTime.parse(timestamp, formatter); + + // Convert to Instant + Instant instant = offsetDateTime.toInstant(); + commitTime = instant.toEpochMilli() / 1000; + } + return new LineBlameResult(blameCommitId, filePath, prevFilePath, commiter, commitTime, resultLineNumber, lineNumber); + } + @Override public List blameFile(Repository repository, String commitId, String filePath, int fromLine, int toLine) throws Exception { // Implement logic to blame a specific range of lines in a file diff --git a/src/test/java/org/codetracker/blame/CliBlameTest.java b/src/test/java/org/codetracker/blame/CliBlameTest.java new file mode 100644 index 00000000000..5bd86d79b86 --- /dev/null +++ b/src/test/java/org/codetracker/blame/CliBlameTest.java @@ -0,0 +1,27 @@ +package org.codetracker.blame; + +import org.codetracker.blame.impl.CliGitBlame; +import org.junit.jupiter.api.Test; +import org.refactoringminer.api.GitService; +import org.refactoringminer.util.GitServiceImpl; + +import static org.codetracker.blame.CodeTrackerBlameTest.assertEqualWithFile; +import static org.codetracker.blame.util.Utils.*; + +/* Created by pourya on 2024-08-22*/ +public class CliBlameTest { + private static final GitService gitService = new GitServiceImpl(); + private final String REPOS_PATH = System.getProperty("user.dir") + "/tmp"; + + @Test + public void testCliGitBlame() throws Exception { + String url = "https://github.com/hibernate/hibernate-orm/commit/9e063ffa2"; + String path = "hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java"; + String iw = getBlameOutput(url, path, new CliGitBlame(true), REPOS_PATH, gitService); + String def = getBlameOutput(url, path, new CliGitBlame(false), REPOS_PATH, gitService); + String expected_iw = System.getProperty("user.dir") + "/src/test/resources/blame/gitcli/9e063ffa2_cgit_iw.txt"; + String expected_def = System.getProperty("user.dir") + "/src/test/resources/blame/gitcli/9e063ffa2_cgit_def.txt"; + assertEqualWithFile(expected_iw,iw); + assertEqualWithFile(expected_def,def); + } +} diff --git a/src/test/java/org/codetracker/blame/CodeTrackerBlameTest.java b/src/test/java/org/codetracker/blame/CodeTrackerBlameTest.java index a8f2d8c1302..ad1cf91e929 100644 --- a/src/test/java/org/codetracker/blame/CodeTrackerBlameTest.java +++ b/src/test/java/org/codetracker/blame/CodeTrackerBlameTest.java @@ -127,7 +127,7 @@ public void testBlameLineRangeWithLocalRepo() throws Exception { assertEqualWithFile(expectedFilePath, actual); } - private void assertEqualWithFile(String expectedResultPath, String actual) throws IOException { + public static void assertEqualWithFile(String expectedResultPath, String actual) throws IOException { String expected = IOUtils.toString( new FileInputStream(expectedResultPath), StandardCharsets.UTF_8 diff --git a/src/test/java/org/codetracker/blame/JGitBlameVerificationTest.java b/src/test/java/org/codetracker/blame/JGitBlameVerificationTest.java deleted file mode 100644 index f66bffc4242..00000000000 --- a/src/test/java/org/codetracker/blame/JGitBlameVerificationTest.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.codetracker.blame; - -import org.codetracker.blame.impl.CliGitBlame; -import org.codetracker.blame.impl.JGitBlame; -import org.junit.jupiter.api.Test; -import org.refactoringminer.api.GitService; -import org.refactoringminer.util.GitServiceImpl; - -import java.nio.file.Files; -import java.nio.file.Path; - -import static org.codetracker.blame.util.Utils.*; - -/* Created by pourya on 2024-08-22*/ -public class JGitBlameVerificationTest { - private static final GitService gitService = new GitServiceImpl(); - private final String REPOS_PATH = System.getProperty("user.dir") + "/tmp"; - @Test - public void testGitBlame() throws Exception { - String url = "https://github.com/javaparser/javaparser/commit/97555053af3025556efe1a168fd7943dac28a2a6"; - String path = "javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/MethodCallExprContext.java"; - String jgit = getBlameOutput(url, path, new JGitBlame(), REPOS_PATH, gitService); - String cgit = getBlameOutput(url, path, new CliGitBlame(), REPOS_PATH, gitService); - - Files.write(Path.of("jgit.txt"), jgit.getBytes()); - Files.write(Path.of("cgit.txt"), cgit.getBytes()); - - } - - -} diff --git a/src/test/resources/blame/gitcli/9e063ffa2_cgit_def.txt b/src/test/resources/blame/gitcli/9e063ffa2_cgit_def.txt new file mode 100644 index 00000000000..47a9c9608ca --- /dev/null +++ b/src/test/resources/blame/gitcli/9e063ffa2_cgit_def.txt @@ -0,0 +1,3348 @@ +513c71de5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 21:41:58 +0000 1) /* +513c71de5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 21:41:58 +0000 2) * Hibernate, Relational Persistence for Idiomatic Java +513c71de5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 21:41:58 +0000 3) * +bd256e478 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-05-19 04:23:35 +0000 4) * License: GNU Lesser General Public License (LGPL), version 2.1 or later. +bd256e478 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-05-19 04:23:35 +0000 5) * See the lgpl.txt file in the root directory or . +513c71de5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 21:41:58 +0000 6) */ +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 7) package org.hibernate.cfg; +d3b640cb7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2012-03-26 08:17:45 +0000 8) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 9) import java.lang.annotation.Annotation; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 10) import java.util.ArrayList; +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 11) import java.util.Arrays; +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 12) import java.util.Collection; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 13) import java.util.Collections; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 14) import java.util.EnumSet; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 15) import java.util.HashMap; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 16) import java.util.HashSet; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 17) import java.util.Iterator; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 18) import java.util.List; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 19) import java.util.Map; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 20) import java.util.Properties; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 21) import java.util.Set; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 22) import javax.persistence.Basic; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 23) import javax.persistence.Cacheable; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 24) import javax.persistence.CollectionTable; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 25) import javax.persistence.Column; +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 26) import javax.persistence.ConstraintMode; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 27) import javax.persistence.DiscriminatorColumn; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 28) import javax.persistence.DiscriminatorType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 29) import javax.persistence.DiscriminatorValue; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 30) import javax.persistence.ElementCollection; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 31) import javax.persistence.Embeddable; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 32) import javax.persistence.Embedded; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 33) import javax.persistence.EmbeddedId; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 34) import javax.persistence.Entity; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 35) import javax.persistence.FetchType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 36) import javax.persistence.GeneratedValue; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 37) import javax.persistence.GenerationType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 38) import javax.persistence.Id; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 39) import javax.persistence.IdClass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 40) import javax.persistence.InheritanceType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 41) import javax.persistence.JoinColumn; +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 42) import javax.persistence.JoinColumns; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 43) import javax.persistence.JoinTable; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 44) import javax.persistence.ManyToMany; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 45) import javax.persistence.ManyToOne; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 46) import javax.persistence.MapKey; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 47) import javax.persistence.MapKeyColumn; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 48) import javax.persistence.MapKeyJoinColumn; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 49) import javax.persistence.MapKeyJoinColumns; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 50) import javax.persistence.MappedSuperclass; +6588ede3a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-19 18:57:19 +0000 51) import javax.persistence.MapsId; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 52) import javax.persistence.NamedNativeQueries; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 53) import javax.persistence.NamedNativeQuery; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 54) import javax.persistence.NamedQueries; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 55) import javax.persistence.NamedQuery; +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 56) import javax.persistence.NamedStoredProcedureQueries; +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 57) import javax.persistence.NamedStoredProcedureQuery; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 58) import javax.persistence.OneToMany; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 59) import javax.persistence.OneToOne; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 60) import javax.persistence.OrderColumn; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 61) import javax.persistence.PrimaryKeyJoinColumn; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 62) import javax.persistence.PrimaryKeyJoinColumns; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 63) import javax.persistence.SequenceGenerator; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 64) import javax.persistence.SharedCacheMode; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 65) import javax.persistence.SqlResultSetMapping; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 66) import javax.persistence.SqlResultSetMappings; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 67) import javax.persistence.Table; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 68) import javax.persistence.TableGenerator; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 69) import javax.persistence.UniqueConstraint; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 70) import javax.persistence.Version; +bdba5898c hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2011-10-24 08:26:37 +0000 71) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 72) import org.hibernate.AnnotationException; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 73) import org.hibernate.AssertionFailure; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 74) import org.hibernate.EntityMode; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 75) import org.hibernate.FetchMode; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 76) import org.hibernate.MappingException; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 77) import org.hibernate.annotations.BatchSize; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 78) import org.hibernate.annotations.Cache; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 79) import org.hibernate.annotations.CacheConcurrencyStrategy; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 80) import org.hibernate.annotations.Cascade; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 81) import org.hibernate.annotations.CascadeType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 82) import org.hibernate.annotations.Check; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 83) import org.hibernate.annotations.CollectionId; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 84) import org.hibernate.annotations.Columns; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 85) import org.hibernate.annotations.DiscriminatorFormula; +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 86) import org.hibernate.annotations.DiscriminatorOptions; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 87) import org.hibernate.annotations.Fetch; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 88) import org.hibernate.annotations.FetchProfile; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 89) import org.hibernate.annotations.FetchProfiles; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 90) import org.hibernate.annotations.Filter; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 91) import org.hibernate.annotations.FilterDef; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 92) import org.hibernate.annotations.FilterDefs; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 93) import org.hibernate.annotations.Filters; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 94) import org.hibernate.annotations.ForeignKey; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 95) import org.hibernate.annotations.Formula; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 96) import org.hibernate.annotations.GenericGenerator; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 97) import org.hibernate.annotations.GenericGenerators; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 98) import org.hibernate.annotations.Index; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 99) import org.hibernate.annotations.LazyToOne; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 100) import org.hibernate.annotations.LazyToOneOption; +54bc9fbf9 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 17:26:33 +0000 101) import org.hibernate.annotations.ListIndexBase; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 102) import org.hibernate.annotations.ManyToAny; +232a77e5d core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-26 21:00:47 +0000 103) import org.hibernate.annotations.MapKeyType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 104) import org.hibernate.annotations.NaturalId; +c47352058 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Eric Dalquist 2012-01-27 22:46:25 +0000 105) import org.hibernate.annotations.NaturalIdCache; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 106) import org.hibernate.annotations.NotFound; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 107) import org.hibernate.annotations.NotFoundAction; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 108) import org.hibernate.annotations.OnDelete; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 109) import org.hibernate.annotations.OnDeleteAction; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 110) import org.hibernate.annotations.OrderBy; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 111) import org.hibernate.annotations.ParamDef; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 112) import org.hibernate.annotations.Parameter; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 113) import org.hibernate.annotations.Parent; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 114) import org.hibernate.annotations.Proxy; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 115) import org.hibernate.annotations.Sort; +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 116) import org.hibernate.annotations.SortComparator; +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 117) import org.hibernate.annotations.SortNatural; +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 118) import org.hibernate.annotations.Source; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 119) import org.hibernate.annotations.Tuplizer; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 120) import org.hibernate.annotations.Tuplizers; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 121) import org.hibernate.annotations.TypeDef; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 122) import org.hibernate.annotations.TypeDefs; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 123) import org.hibernate.annotations.Where; +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 124) import org.hibernate.annotations.common.reflection.ClassLoadingException; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 125) import org.hibernate.annotations.common.reflection.ReflectionManager; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 126) import org.hibernate.annotations.common.reflection.XAnnotatedElement; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 127) import org.hibernate.annotations.common.reflection.XClass; +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 128) import org.hibernate.annotations.common.reflection.XMethod; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 129) import org.hibernate.annotations.common.reflection.XPackage; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 130) import org.hibernate.annotations.common.reflection.XProperty; +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 131) import org.hibernate.boot.model.IdGeneratorStrategyInterpreter; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 132) import org.hibernate.boot.model.IdentifierGeneratorDefinition; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 133) import org.hibernate.boot.model.TypeDefinition; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 134) import org.hibernate.boot.spi.InFlightMetadataCollector.EntityTableXref; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 135) import org.hibernate.boot.spi.MetadataBuildingContext; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 136) import org.hibernate.cfg.annotations.CollectionBinder; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 137) import org.hibernate.cfg.annotations.EntityBinder; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 138) import org.hibernate.cfg.annotations.MapKeyColumnDelegator; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 139) import org.hibernate.cfg.annotations.MapKeyJoinColumnDelegator; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 140) import org.hibernate.cfg.annotations.Nullability; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 141) import org.hibernate.cfg.annotations.PropertyBinder; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 142) import org.hibernate.cfg.annotations.QueryBinder; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 143) import org.hibernate.cfg.annotations.SimpleValueBinder; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 144) import org.hibernate.cfg.annotations.TableBinder; +b51164aef hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-26 23:50:39 +0000 145) import org.hibernate.engine.OptimisticLockStyle; +fb44ad936 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2011-05-04 22:15:40 +0000 146) import org.hibernate.engine.spi.FilterDefinition; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 147) import org.hibernate.id.PersistentIdentifierGenerator; +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 148) import org.hibernate.internal.CoreLogging; +bdba5898c hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2011-10-24 08:26:37 +0000 149) import org.hibernate.internal.CoreMessageLogger; +1811b48f7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-12-09 20:14:56 +0000 150) import org.hibernate.internal.util.StringHelper; +803c73c55 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-08-28 20:07:18 +0000 151) import org.hibernate.loader.PropertyPath; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 152) import org.hibernate.mapping.Any; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 153) import org.hibernate.mapping.Component; +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 154) import org.hibernate.mapping.Constraint; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 155) import org.hibernate.mapping.DependantValue; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 156) import org.hibernate.mapping.IdGenerator; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 157) import org.hibernate.mapping.Join; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 158) import org.hibernate.mapping.JoinedSubclass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 159) import org.hibernate.mapping.KeyValue; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 160) import org.hibernate.mapping.PersistentClass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 161) import org.hibernate.mapping.Property; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 162) import org.hibernate.mapping.RootClass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 163) import org.hibernate.mapping.SimpleValue; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 164) import org.hibernate.mapping.SingleTableSubclass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 165) import org.hibernate.mapping.Subclass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 166) import org.hibernate.mapping.ToOne; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 167) import org.hibernate.mapping.UnionSubclass; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 168) +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 169) import static org.hibernate.internal.CoreLogging.messageLogger; +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 170) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 171) /** +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 172) * JSR 175 annotation binder which reads the annotations from classes, applies the +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 173) * principles of the EJB3 spec and produces the Hibernate configuration-time metamodel +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 174) * (the classes in the {@code org.hibernate.mapping} package) +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 175) *

+9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 176) * Some design description +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 177) * I tried to remove any link to annotation except from the 2 first level of +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 178) * method call. +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 179) * It'll enable to: +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 180) * - facilitate annotation overriding +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 181) * - mutualize one day xml and annotation binder (probably a dream though) +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 182) * - split this huge class in smaller mapping oriented classes +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 183) * +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 184) * bindSomething usually create the mapping container and is accessed by one of the 2 first level method +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 185) * makeSomething usually create the mapping container and is accessed by bindSomething[else] +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 186) * fillSomething take the container into parameter and fill it. +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 187) * +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 188) * @author Emmanuel Bernard +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 189) * @author Hardy Ferentschik +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 190) */ +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 191) @SuppressWarnings("unchecked") +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 192) public final class AnnotationBinder { +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 193) private static final CoreMessageLogger LOG = messageLogger( AnnotationBinder.class ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 194) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 195) private AnnotationBinder() { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 196) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 197) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 198) public static void bindDefaults(MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 199) Map defaults = context.getBuildingOptions().getReflectionManager().getDefaults(); +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 200) +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 201) // id generators ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 202) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 203) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 204) List anns = ( List ) defaults.get( SequenceGenerator.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 205) if ( anns != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 206) for ( SequenceGenerator ann : anns ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 207) IdentifierGeneratorDefinition idGen = buildIdGenerator( ann, context ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 208) if ( idGen != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 209) context.getMetadataCollector().addDefaultIdentifierGenerator( idGen ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 210) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 211) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 212) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 213) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 214) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 215) List anns = ( List ) defaults.get( TableGenerator.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 216) if ( anns != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 217) for ( TableGenerator ann : anns ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 218) IdentifierGeneratorDefinition idGen = buildIdGenerator( ann, context ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 219) if ( idGen != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 220) context.getMetadataCollector().addDefaultIdentifierGenerator( idGen ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 221) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 222) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 223) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 224) } +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 225) +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 226) // queries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 227) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 228) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 229) List anns = ( List ) defaults.get( NamedQuery.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 230) if ( anns != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 231) for ( NamedQuery ann : anns ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 232) QueryBinder.bindQuery( ann, context, true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 233) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 234) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 235) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 236) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 237) List anns = ( List ) defaults.get( NamedNativeQuery.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 238) if ( anns != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 239) for ( NamedNativeQuery ann : anns ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 240) QueryBinder.bindNativeQuery( ann, context, true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 241) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 242) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 243) } +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 244) +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 245) // result-set-mappings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 246) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 247) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 248) List anns = ( List ) defaults.get( SqlResultSetMapping.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 249) if ( anns != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 250) for ( SqlResultSetMapping ann : anns ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 251) QueryBinder.bindSqlResultSetMapping( ann, context, true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 252) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 253) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 254) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 255) +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 256) // stored procs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 257) +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 258) { +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 259) final List annotations = +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 260) (List) defaults.get( NamedStoredProcedureQuery.class ); +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 261) if ( annotations != null ) { +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 262) for ( NamedStoredProcedureQuery annotation : annotations ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 263) bindNamedStoredProcedureQuery( annotation, context, true ); +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 264) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 265) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 266) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 267) { +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 268) final List annotations = +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 269) (List) defaults.get( NamedStoredProcedureQueries.class ); +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 270) if ( annotations != null ) { +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 271) for ( NamedStoredProcedureQueries annotation : annotations ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 272) bindNamedStoredProcedureQueries( annotation, context, true ); +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 273) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 274) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 275) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 276) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 277) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 278) public static void bindPackage(String packageName, MetadataBuildingContext context) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 279) XPackage pckg; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 280) try { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 281) pckg = context.getBuildingOptions().getReflectionManager().packageForName( packageName ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 282) } +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 283) catch (ClassLoadingException e) { +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 284) LOG.packageNotFound( packageName ); +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 285) return; +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 286) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 287) catch ( ClassNotFoundException cnf ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 288) LOG.packageNotFound( packageName ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 289) return; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 290) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 291) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 292) if ( pckg.isAnnotationPresent( SequenceGenerator.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 293) SequenceGenerator ann = pckg.getAnnotation( SequenceGenerator.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 294) IdentifierGeneratorDefinition idGen = buildIdGenerator( ann, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 295) context.getMetadataCollector().addIdentifierGenerator( idGen ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 296) if ( LOG.isTraceEnabled() ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 297) LOG.tracev( "Add sequence generator with name: {0}", idGen.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 298) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 299) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 300) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 301) if ( pckg.isAnnotationPresent( TableGenerator.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 302) TableGenerator ann = pckg.getAnnotation( TableGenerator.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 303) IdentifierGeneratorDefinition idGen = buildIdGenerator( ann, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 304) context.getMetadataCollector().addIdentifierGenerator( idGen ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 305) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 306) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 307) bindGenericGenerators( pckg, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 308) bindQueries( pckg, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 309) bindFilterDefs( pckg, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 310) bindTypeDefs( pckg, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 311) bindFetchProfiles( pckg, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 312) BinderHelper.bindAnyMetaDefs( pckg, context ); +ad2a9ef65 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-07-05 22:48:02 +0000 313) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 314) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 315) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 316) private static void bindGenericGenerators(XAnnotatedElement annotatedElement, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 317) GenericGenerator defAnn = annotatedElement.getAnnotation( GenericGenerator.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 318) GenericGenerators defsAnn = annotatedElement.getAnnotation( GenericGenerators.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 319) if ( defAnn != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 320) bindGenericGenerator( defAnn, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 321) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 322) if ( defsAnn != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 323) for ( GenericGenerator def : defsAnn.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 324) bindGenericGenerator( def, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 325) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 326) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 327) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 328) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 329) private static void bindGenericGenerator(GenericGenerator def, MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 330) context.getMetadataCollector().addIdentifierGenerator( buildIdGenerator( def, context ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 331) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 332) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 333) private static void bindQueries(XAnnotatedElement annotatedElement, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 334) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 335) SqlResultSetMapping ann = annotatedElement.getAnnotation( SqlResultSetMapping.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 336) QueryBinder.bindSqlResultSetMapping( ann, context, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 337) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 338) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 339) SqlResultSetMappings ann = annotatedElement.getAnnotation( SqlResultSetMappings.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 340) if ( ann != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 341) for ( SqlResultSetMapping current : ann.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 342) QueryBinder.bindSqlResultSetMapping( current, context, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 343) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 344) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 345) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 346) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 347) NamedQuery ann = annotatedElement.getAnnotation( NamedQuery.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 348) QueryBinder.bindQuery( ann, context, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 349) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 350) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 351) org.hibernate.annotations.NamedQuery ann = annotatedElement.getAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 352) org.hibernate.annotations.NamedQuery.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 353) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 354) QueryBinder.bindQuery( ann, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 355) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 356) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 357) NamedQueries ann = annotatedElement.getAnnotation( NamedQueries.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 358) QueryBinder.bindQueries( ann, context, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 359) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 360) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 361) org.hibernate.annotations.NamedQueries ann = annotatedElement.getAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 362) org.hibernate.annotations.NamedQueries.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 363) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 364) QueryBinder.bindQueries( ann, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 365) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 366) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 367) NamedNativeQuery ann = annotatedElement.getAnnotation( NamedNativeQuery.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 368) QueryBinder.bindNativeQuery( ann, context, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 369) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 370) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 371) org.hibernate.annotations.NamedNativeQuery ann = annotatedElement.getAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 372) org.hibernate.annotations.NamedNativeQuery.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 373) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 374) QueryBinder.bindNativeQuery( ann, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 375) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 376) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 377) NamedNativeQueries ann = annotatedElement.getAnnotation( NamedNativeQueries.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 378) QueryBinder.bindNativeQueries( ann, context, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 379) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 380) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 381) org.hibernate.annotations.NamedNativeQueries ann = annotatedElement.getAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 382) org.hibernate.annotations.NamedNativeQueries.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 383) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 384) QueryBinder.bindNativeQueries( ann, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 385) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 386) +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 387) // NamedStoredProcedureQuery handling ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 388) bindNamedStoredProcedureQuery( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 389) annotatedElement.getAnnotation( NamedStoredProcedureQuery.class ), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 390) context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 391) false +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 392) ); +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 393) +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 394) // NamedStoredProcedureQueries handling ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 395) bindNamedStoredProcedureQueries( +5ea40ce3f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-23 23:09:28 +0000 396) annotatedElement.getAnnotation( NamedStoredProcedureQueries.class ), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 397) context, +5ea40ce3f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-23 23:09:28 +0000 398) false +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 399) ); +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 400) } +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 401) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 402) private static void bindNamedStoredProcedureQueries(NamedStoredProcedureQueries annotation, MetadataBuildingContext context, boolean isDefault) { +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 403) if ( annotation != null ) { +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 404) for ( NamedStoredProcedureQuery queryAnnotation : annotation.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 405) bindNamedStoredProcedureQuery( queryAnnotation, context, isDefault ); +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 406) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 407) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 408) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 409) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 410) private static void bindNamedStoredProcedureQuery(NamedStoredProcedureQuery annotation, MetadataBuildingContext context, boolean isDefault) { +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 411) if ( annotation != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 412) QueryBinder.bindNamedStoredProcedureQuery( annotation, context, isDefault ); +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 413) } +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 414) } +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 415) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 416) private static IdentifierGeneratorDefinition buildIdGenerator(java.lang.annotation.Annotation ann, MetadataBuildingContext context) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 417) if ( ann == null ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 418) return null; +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 419) } +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 420) +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 421) IdentifierGeneratorDefinition.Builder definitionBuilder = new IdentifierGeneratorDefinition.Builder(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 422) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 423) if ( context.getMappingDefaults().getImplicitSchemaName() != null ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 424) definitionBuilder.addParam( +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 425) PersistentIdentifierGenerator.SCHEMA, +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 426) context.getMappingDefaults().getImplicitSchemaName() +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 427) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 428) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 429) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 430) if ( context.getMappingDefaults().getImplicitCatalogName() != null ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 431) definitionBuilder.addParam( +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 432) PersistentIdentifierGenerator.CATALOG, +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 433) context.getMappingDefaults().getImplicitCatalogName() +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 434) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 435) } +4ec26fa4c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-27 08:00:27 +0000 436) +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 437) if ( ann instanceof TableGenerator ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 438) context.getBuildingOptions().getIdGenerationTypeInterpreter().interpretTableGenerator( +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 439) (TableGenerator) ann, +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 440) definitionBuilder +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 441) ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 442) if ( LOG.isTraceEnabled() ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 443) LOG.tracev( "Add table generator with name: {0}", definitionBuilder.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 444) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 445) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 446) else if ( ann instanceof SequenceGenerator ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 447) context.getBuildingOptions().getIdGenerationTypeInterpreter().interpretSequenceGenerator( +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 448) (SequenceGenerator) ann, +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 449) definitionBuilder +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 450) ); +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 451) if ( LOG.isTraceEnabled() ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 452) LOG.tracev( "Add sequence generator with name: {0}", definitionBuilder.getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 453) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 454) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 455) else if ( ann instanceof GenericGenerator ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 456) GenericGenerator genGen = ( GenericGenerator ) ann; +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 457) definitionBuilder.setName( genGen.name() ); +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 458) definitionBuilder.setStrategy( genGen.strategy() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 459) Parameter[] params = genGen.parameters(); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 460) for ( Parameter parameter : params ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 461) definitionBuilder.addParam( parameter.name(), parameter.value() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 462) } +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 463) if ( LOG.isTraceEnabled() ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 464) LOG.tracev( "Add generic generator with name: {0}", definitionBuilder.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 465) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 466) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 467) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 468) throw new AssertionFailure( "Unknown Generator annotation: " + ann ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 469) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 470) +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 471) return definitionBuilder.build(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 472) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 473) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 474) /** +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 475) * Bind a class having JSR175 annotations. Subclasses have to be bound after its parent class. +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 476) * +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 477) * @param clazzToProcess entity to bind as {@code XClass} instance +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 478) * @param inheritanceStatePerClass Meta data about the inheritance relationships for all mapped classes +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 479) * +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 480) * @throws MappingException in case there is an configuration error +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 481) */ +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 482) public static void bindClass( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 483) XClass clazzToProcess, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 484) Map inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 485) MetadataBuildingContext context) throws MappingException { +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 486) //@Entity and @MappedSuperclass on the same class leads to a NPE down the road +a9b1425f3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (John Verhaeg 2010-12-21 21:51:02 +0000 487) if ( clazzToProcess.isAnnotationPresent( Entity.class ) +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 488) && clazzToProcess.isAnnotationPresent( MappedSuperclass.class ) ) { +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 489) throw new AnnotationException( "An entity cannot be annotated with both @Entity and @MappedSuperclass: " +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 490) + clazzToProcess.getName() ); +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 491) } +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 492) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 493) //TODO: be more strict with secondarytable allowance (not for ids, not for secondary table join columns etc) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 494) InheritanceState inheritanceState = inheritanceStatePerClass.get( clazzToProcess ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 495) AnnotatedClassType classType = context.getMetadataCollector().getClassType( clazzToProcess ); +8cc9e9d5f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:43:48 +0000 496) +88caf4d95 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:19:24 +0000 497) //Queries declared in MappedSuperclass should be usable in Subclasses +8cc9e9d5f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:43:48 +0000 498) if ( AnnotatedClassType.EMBEDDABLE_SUPERCLASS.equals( classType ) ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 499) bindQueries( clazzToProcess, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 500) bindTypeDefs( clazzToProcess, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 501) bindFilterDefs( clazzToProcess, context ); +88caf4d95 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:19:24 +0000 502) } +8cc9e9d5f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:43:48 +0000 503) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 504) if ( !isEntityClassType( clazzToProcess, classType ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 505) return; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 506) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 507) +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 508) if ( LOG.isDebugEnabled() ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 509) LOG.debugf( "Binding entity from annotated class: %s", clazzToProcess.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 510) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 511) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 512) PersistentClass superEntity = getSuperEntity( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 513) clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 514) inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 515) context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 516) inheritanceState +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 517) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 518) +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 519) PersistentClass persistentClass = makePersistentClass( inheritanceState, superEntity, context ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 520) Entity entityAnn = clazzToProcess.getAnnotation( Entity.class ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 521) org.hibernate.annotations.Entity hibEntityAnn = clazzToProcess.getAnnotation( +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 522) org.hibernate.annotations.Entity.class +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 523) ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 524) EntityBinder entityBinder = new EntityBinder( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 525) entityAnn, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 526) hibEntityAnn, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 527) clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 528) persistentClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 529) context +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 530) ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 531) entityBinder.setInheritanceState( inheritanceState ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 532) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 533) bindQueries( clazzToProcess, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 534) bindFilterDefs( clazzToProcess, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 535) bindTypeDefs( clazzToProcess, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 536) bindFetchProfiles( clazzToProcess, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 537) BinderHelper.bindAnyMetaDefs( clazzToProcess, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 538) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 539) String schema = ""; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 540) String table = ""; //might be no @Table annotation on the annotated class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 541) String catalog = ""; +a2bf14ae7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2009-12-06 22:20:58 +0000 542) List uniqueConstraints = new ArrayList(); +1d9b7a06a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-05 16:09:08 +0000 543) javax.persistence.Table tabAnn = null; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 544) if ( clazzToProcess.isAnnotationPresent( javax.persistence.Table.class ) ) { +1d9b7a06a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-05 16:09:08 +0000 545) tabAnn = clazzToProcess.getAnnotation( javax.persistence.Table.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 546) table = tabAnn.name(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 547) schema = tabAnn.schema(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 548) catalog = tabAnn.catalog(); +a2bf14ae7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2009-12-06 22:20:58 +0000 549) uniqueConstraints = TableBinder.buildUniqueConstraintHolders( tabAnn.uniqueConstraints() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 550) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 551) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 552) Ejb3JoinColumn[] inheritanceJoinedColumns = makeInheritanceJoinColumns( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 553) clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 554) context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 555) inheritanceState, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 556) superEntity +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 557) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 558) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 559) final Ejb3DiscriminatorColumn discriminatorColumn; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 560) if ( InheritanceType.SINGLE_TABLE.equals( inheritanceState.getType() ) ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 561) discriminatorColumn = processSingleTableDiscriminatorProperties( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 562) clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 563) context, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 564) inheritanceState, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 565) entityBinder +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 566) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 567) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 568) else if ( InheritanceType.JOINED.equals( inheritanceState.getType() ) ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 569) discriminatorColumn = processJoinedDiscriminatorProperties( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 570) clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 571) context, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 572) inheritanceState, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 573) entityBinder +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 574) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 575) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 576) else { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 577) discriminatorColumn = null; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 578) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 579) +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 580) entityBinder.setProxy( clazzToProcess.getAnnotation( Proxy.class ) ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 581) entityBinder.setBatchSize( clazzToProcess.getAnnotation( BatchSize.class ) ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 582) entityBinder.setWhere( clazzToProcess.getAnnotation( Where.class ) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 583) entityBinder.setCache( determineCacheSettings( clazzToProcess, context ) ); +1569e6194 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Eric Dalquist 2012-02-03 17:22:07 +0000 584) entityBinder.setNaturalIdCache( clazzToProcess, clazzToProcess.getAnnotation( NaturalIdCache.class ) ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 585) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 586) bindFilters( clazzToProcess, entityBinder, context ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 587) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 588) entityBinder.bindEntity(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 589) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 590) if ( inheritanceState.hasTable() ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 591) Check checkAnn = clazzToProcess.getAnnotation( Check.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 592) String constraints = checkAnn == null +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 593) ? null +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 594) : checkAnn.constraints(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 595) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 596) EntityTableXref denormalizedTableXref = inheritanceState.hasDenormalizedTable() +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 597) ? context.getMetadataCollector().getEntityTableXref( superEntity.getEntityName() ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 598) : null; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 599) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 600) entityBinder.bindTable( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 601) schema, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 602) catalog, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 603) table, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 604) uniqueConstraints, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 605) constraints, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 606) denormalizedTableXref +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 607) ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 608) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 609) else { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 610) if ( clazzToProcess.isAnnotationPresent( Table.class ) ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 611) LOG.invalidTableAnnotation( clazzToProcess.getName() ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 612) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 613) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 614) if ( inheritanceState.getType() == InheritanceType.SINGLE_TABLE ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 615) // we at least need to properly set up the EntityTableXref +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 616) entityBinder.bindTableForDiscriminatedSubclass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 617) context.getMetadataCollector().getEntityTableXref( superEntity.getEntityName() ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 618) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 619) } +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 620) } +a9b1425f3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (John Verhaeg 2010-12-21 21:51:02 +0000 621) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 622) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 623) PropertyHolder propertyHolder = PropertyHolderBuilder.buildPropertyHolder( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 624) clazzToProcess, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 625) persistentClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 626) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 627) context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 628) inheritanceStatePerClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 629) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 630) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 631) javax.persistence.SecondaryTable secTabAnn = clazzToProcess.getAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 632) javax.persistence.SecondaryTable.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 633) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 634) javax.persistence.SecondaryTables secTabsAnn = clazzToProcess.getAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 635) javax.persistence.SecondaryTables.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 636) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 637) entityBinder.firstLevelSecondaryTablesBinding( secTabAnn, secTabsAnn ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 638) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 639) OnDelete onDeleteAnn = clazzToProcess.getAnnotation( OnDelete.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 640) boolean onDeleteAppropriate = false; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 641) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 642) // todo : sucks that this is separate from RootClass distinction +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 643) final boolean isInheritanceRoot = !inheritanceState.hasParents(); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 644) final boolean hasSubclasses = inheritanceState.hasSiblings(); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 645) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 646) if ( InheritanceType.JOINED.equals( inheritanceState.getType() ) ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 647) if ( inheritanceState.hasParents() ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 648) onDeleteAppropriate = true; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 649) final JoinedSubclass jsc = ( JoinedSubclass ) persistentClass; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 650) SimpleValue key = new DependantValue( context.getMetadataCollector(), jsc.getTable(), jsc.getIdentifier() ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 651) jsc.setKey( key ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 652) ForeignKey fk = clazzToProcess.getAnnotation( ForeignKey.class ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 653) if ( fk != null && !BinderHelper.isEmptyAnnotationValue( fk.name() ) ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 654) key.setForeignKeyName( fk.name() ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 655) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 656) if ( onDeleteAnn != null ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 657) key.setCascadeDeleteEnabled( OnDeleteAction.CASCADE.equals( onDeleteAnn.action() ) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 658) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 659) else { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 660) key.setCascadeDeleteEnabled( false ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 661) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 662) //we are never in a second pass at that stage, so queue it +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 663) context.getMetadataCollector().addSecondPass( new JoinedSubclassFkSecondPass( jsc, inheritanceJoinedColumns, key, context ) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 664) context.getMetadataCollector().addSecondPass( new CreateKeySecondPass( jsc ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 665) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 666) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 667) if ( isInheritanceRoot ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 668) // the class we are processing is the root of the hierarchy, see if we had a discriminator column +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 669) // (it is perfectly valid for joined subclasses to not have discriminators). +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 670) if ( discriminatorColumn != null ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 671) // we have a discriminator column +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 672) if ( hasSubclasses || !discriminatorColumn.isImplicit() ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 673) bindDiscriminatorColumnToRootPersistentClass( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 674) (RootClass) persistentClass, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 675) discriminatorColumn, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 676) entityBinder.getSecondaryTables(), +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 677) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 678) context +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 679) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 680) //bind it again since the type might have changed +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 681) entityBinder.bindDiscriminatorValue(); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 682) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 683) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 684) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 685) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 686) else if ( InheritanceType.SINGLE_TABLE.equals( inheritanceState.getType() ) ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 687) if ( isInheritanceRoot ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 688) if ( hasSubclasses || !discriminatorColumn.isImplicit() ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 689) bindDiscriminatorColumnToRootPersistentClass( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 690) (RootClass) persistentClass, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 691) discriminatorColumn, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 692) entityBinder.getSecondaryTables(), +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 693) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 694) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 695) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 696) //bind it again since the type might have changed +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 697) entityBinder.bindDiscriminatorValue(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 698) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 699) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 700) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 701) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 702) if ( onDeleteAnn != null && !onDeleteAppropriate ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 703) LOG.invalidOnDeleteAnnotation(propertyHolder.getEntityName()); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 704) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 705) +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 706) // try to find class level generators +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 707) HashMap classGenerators = buildLocalGenerators( clazzToProcess, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 708) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 709) // check properties +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 710) final InheritanceState.ElementsToProcess elementsToProcess = inheritanceState.getElementsToProcess(); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 711) inheritanceState.postProcess( persistentClass, entityBinder ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 712) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 713) final boolean subclassAndSingleTableStrategy = inheritanceState.getType() == InheritanceType.SINGLE_TABLE +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 714) && inheritanceState.hasParents(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 715) Set idPropertiesIfIdClass = new HashSet(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 716) boolean isIdClass = mapAsIdClass( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 717) inheritanceStatePerClass, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 718) inheritanceState, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 719) persistentClass, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 720) entityBinder, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 721) propertyHolder, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 722) elementsToProcess, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 723) idPropertiesIfIdClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 724) context +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 725) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 726) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 727) if ( !isIdClass ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 728) entityBinder.setWrapIdsInEmbeddedComponents( elementsToProcess.getIdPropertyCount() > 1 ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 729) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 730) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 731) processIdPropertiesIfNotAlready( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 732) inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 733) context, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 734) persistentClass, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 735) entityBinder, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 736) propertyHolder, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 737) classGenerators, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 738) elementsToProcess, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 739) subclassAndSingleTableStrategy, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 740) idPropertiesIfIdClass +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 741) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 742) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 743) if ( !inheritanceState.hasParents() ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 744) final RootClass rootClass = ( RootClass ) persistentClass; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 745) context.getMetadataCollector().addSecondPass( new CreateKeySecondPass( rootClass ) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 746) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 747) else { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 748) superEntity.addSubclass( ( Subclass ) persistentClass ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 749) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 750) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 751) context.getMetadataCollector().addEntityBinding( persistentClass ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 752) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 753) //Process secondary tables and complementary definitions (ie o.h.a.Table) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 754) context.getMetadataCollector().addSecondPass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 755) new SecondaryTableSecondPass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 756) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 757) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 758) clazzToProcess +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 759) ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 760) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 761) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 762) //add process complementary Table definition (index & all) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 763) entityBinder.processComplementaryTableDefinitions( clazzToProcess.getAnnotation( org.hibernate.annotations.Table.class ) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 764) entityBinder.processComplementaryTableDefinitions( clazzToProcess.getAnnotation( org.hibernate.annotations.Tables.class ) ); +1d9b7a06a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-05 16:09:08 +0000 765) entityBinder.processComplementaryTableDefinitions( tabAnn ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 766) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 767) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 768) /** +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 769) * Process all discriminator-related metadata per rules for "single table" inheritance +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 770) */ +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 771) private static Ejb3DiscriminatorColumn processSingleTableDiscriminatorProperties( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 772) XClass clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 773) MetadataBuildingContext context, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 774) InheritanceState inheritanceState, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 775) EntityBinder entityBinder) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 776) final boolean isRoot = !inheritanceState.hasParents(); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 777) +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 778) Ejb3DiscriminatorColumn discriminatorColumn = null; +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 779) javax.persistence.DiscriminatorColumn discAnn = clazzToProcess.getAnnotation( +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 780) javax.persistence.DiscriminatorColumn.class +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 781) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 782) DiscriminatorType discriminatorType = discAnn != null +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 783) ? discAnn.discriminatorType() +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 784) : DiscriminatorType.STRING; +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 785) +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 786) org.hibernate.annotations.DiscriminatorFormula discFormulaAnn = clazzToProcess.getAnnotation( +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 787) org.hibernate.annotations.DiscriminatorFormula.class +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 788) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 789) if ( isRoot ) { +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 790) discriminatorColumn = Ejb3DiscriminatorColumn.buildDiscriminatorColumn( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 791) discriminatorType, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 792) discAnn, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 793) discFormulaAnn, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 794) context +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 795) ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 796) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 797) if ( discAnn != null && !isRoot ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 798) LOG.invalidDiscriminatorAnnotation( clazzToProcess.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 799) } +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 800) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 801) final String discriminatorValue = clazzToProcess.isAnnotationPresent( DiscriminatorValue.class ) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 802) ? clazzToProcess.getAnnotation( DiscriminatorValue.class ).value() +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 803) : null; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 804) entityBinder.setDiscriminatorValue( discriminatorValue ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 805) +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 806) DiscriminatorOptions discriminatorOptions = clazzToProcess.getAnnotation( DiscriminatorOptions.class ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 807) if ( discriminatorOptions != null) { +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 808) entityBinder.setForceDiscriminator( discriminatorOptions.force() ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 809) entityBinder.setInsertableDiscriminator( discriminatorOptions.insert() ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 810) } +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 811) +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 812) return discriminatorColumn; +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 813) } +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 814) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 815) /** +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 816) * Process all discriminator-related metadata per rules for "joined" inheritance +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 817) */ +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 818) private static Ejb3DiscriminatorColumn processJoinedDiscriminatorProperties( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 819) XClass clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 820) MetadataBuildingContext context, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 821) InheritanceState inheritanceState, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 822) EntityBinder entityBinder) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 823) if ( clazzToProcess.isAnnotationPresent( DiscriminatorFormula.class ) ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 824) throw new MappingException( "@DiscriminatorFormula on joined inheritance not supported at this time" ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 825) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 826) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 827) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 828) // DiscriminatorValue handling ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 829) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 830) final DiscriminatorValue discriminatorValueAnnotation = clazzToProcess.getAnnotation( DiscriminatorValue.class ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 831) final String discriminatorValue = discriminatorValueAnnotation != null +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 832) ? clazzToProcess.getAnnotation( DiscriminatorValue.class ).value() +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 833) : null; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 834) entityBinder.setDiscriminatorValue( discriminatorValue ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 835) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 836) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 837) // DiscriminatorColumn handling ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 838) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 839) final DiscriminatorColumn discriminatorColumnAnnotation = clazzToProcess.getAnnotation( DiscriminatorColumn.class ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 840) if ( !inheritanceState.hasParents() ) { +b70148a85 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:56:03 +0000 841) // we want to process the discriminator column if either: +b70148a85 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:56:03 +0000 842) // 1) There is an explicit DiscriminatorColumn annotation && we are not told to ignore them +b70148a85 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:56:03 +0000 843) // 2) There is not an explicit DiscriminatorColumn annotation && we are told to create them implicitly +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 844) final boolean generateDiscriminatorColumn; +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 845) if ( discriminatorColumnAnnotation != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 846) if ( context.getBuildingOptions().ignoreExplicitDiscriminatorsForJoinedInheritance() ) { +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 847) LOG.debugf( "Ignoring explicit DiscriminatorColumn annotation on ", clazzToProcess.getName() ); +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 848) generateDiscriminatorColumn = false; +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 849) } +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 850) else { +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 851) LOG.applyingExplicitDiscriminatorColumnForJoined( +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 852) clazzToProcess.getName(), +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 853) AvailableSettings.IGNORE_EXPLICIT_DISCRIMINATOR_COLUMNS_FOR_JOINED_SUBCLASS +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 854) ); +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 855) generateDiscriminatorColumn = true; +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 856) } +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 857) } +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 858) else { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 859) if ( context.getBuildingOptions().createImplicitDiscriminatorsForJoinedInheritance() ) { +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 860) LOG.debug( "Applying implicit DiscriminatorColumn using DiscriminatorColumn defaults" ); +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 861) generateDiscriminatorColumn = true; +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 862) } +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 863) else { +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 864) LOG.debug( "Ignoring implicit (absent) DiscriminatorColumn" ); +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 865) generateDiscriminatorColumn = false; +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 866) } +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 867) } +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 868) +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 869) if ( generateDiscriminatorColumn ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 870) final DiscriminatorType discriminatorType = discriminatorColumnAnnotation != null +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 871) ? discriminatorColumnAnnotation.discriminatorType() +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 872) : DiscriminatorType.STRING; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 873) return Ejb3DiscriminatorColumn.buildDiscriminatorColumn( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 874) discriminatorType, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 875) discriminatorColumnAnnotation, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 876) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 877) context +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 878) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 879) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 880) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 881) else { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 882) if ( discriminatorColumnAnnotation != null ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 883) LOG.invalidDiscriminatorAnnotation( clazzToProcess.getName() ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 884) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 885) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 886) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 887) return null; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 888) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 889) +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 890) private static void processIdPropertiesIfNotAlready( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 891) Map inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 892) MetadataBuildingContext context, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 893) PersistentClass persistentClass, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 894) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 895) PropertyHolder propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 896) HashMap classGenerators, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 897) InheritanceState.ElementsToProcess elementsToProcess, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 898) boolean subclassAndSingleTableStrategy, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 899) Set idPropertiesIfIdClass) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 900) Set missingIdProperties = new HashSet( idPropertiesIfIdClass ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 901) for ( PropertyData propertyAnnotatedElement : elementsToProcess.getElements() ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 902) String propertyName = propertyAnnotatedElement.getPropertyName(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 903) if ( !idPropertiesIfIdClass.contains( propertyName ) ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 904) processElementAnnotations( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 905) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 906) subclassAndSingleTableStrategy +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 907) ? Nullability.FORCED_NULL +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 908) : Nullability.NO_CONSTRAINT, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 909) propertyAnnotatedElement, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 910) classGenerators, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 911) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 912) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 913) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 914) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 915) context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 916) inheritanceStatePerClass +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 917) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 918) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 919) else { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 920) missingIdProperties.remove( propertyName ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 921) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 922) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 923) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 924) if ( missingIdProperties.size() != 0 ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 925) StringBuilder missings = new StringBuilder(); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 926) for ( String property : missingIdProperties ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 927) missings.append( property ).append( ", " ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 928) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 929) throw new AnnotationException( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 930) "Unable to find properties (" +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 931) + missings.substring( 0, missings.length() - 2 ) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 932) + ") in entity annotated with @IdClass:" + persistentClass.getEntityName() +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 933) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 934) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 935) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 936) +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 937) private static boolean mapAsIdClass( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 938) Map inheritanceStatePerClass, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 939) InheritanceState inheritanceState, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 940) PersistentClass persistentClass, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 941) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 942) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 943) InheritanceState.ElementsToProcess elementsToProcess, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 944) Set idPropertiesIfIdClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 945) MetadataBuildingContext context) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 946) /* +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 947) * We are looking for @IdClass +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 948) * In general we map the id class as identifier using the mapping metadata of the main entity's properties +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 949) * and we create an identifier mapper containing the id properties of the main entity +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 950) * +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 951) * In JPA 2, there is a shortcut if the id class is the Pk of the associated class pointed to by the id +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 952) * it ought to be treated as an embedded and not a real IdClass (at least in the Hibernate's internal way +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 953) */ +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 954) XClass classWithIdClass = inheritanceState.getClassWithIdClass( false ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 955) if ( classWithIdClass != null ) { +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 956) IdClass idClass = classWithIdClass.getAnnotation( IdClass.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 957) XClass compositeClass = context.getBuildingOptions().getReflectionManager().toXClass( idClass.value() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 958) PropertyData inferredData = new PropertyPreloadedData( +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 959) entityBinder.getPropertyAccessType(), "id", compositeClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 960) ); +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 961) PropertyData baseInferredData = new PropertyPreloadedData( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 962) entityBinder.getPropertyAccessType(), "id", classWithIdClass +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 963) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 964) AccessType propertyAccessor = entityBinder.getPropertyAccessor( compositeClass ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 965) //In JPA 2, there is a shortcut if the IdClass is the Pk of the associated class pointed to by the id +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 966) //it ought to be treated as an embedded and not a real IdClass (at least in the Hibernate's internal way +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 967) final boolean isFakeIdClass = isIdClassPkOfTheAssociatedEntity( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 968) elementsToProcess, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 969) compositeClass, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 970) inferredData, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 971) baseInferredData, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 972) propertyAccessor, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 973) inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 974) context +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 975) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 976) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 977) if ( isFakeIdClass ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 978) return false; +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 979) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 980) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 981) boolean isComponent = true; +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 982) String generatorType = "assigned"; +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 983) String generator = BinderHelper.ANNOTATION_STRING_DEFAULT; +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 984) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 985) boolean ignoreIdAnnotations = entityBinder.isIgnoreIdAnnotations(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 986) entityBinder.setIgnoreIdAnnotations( true ); +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 987) propertyHolder.setInIdClass( true ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 988) bindIdClass( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 989) generatorType, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 990) generator, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 991) inferredData, +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 992) baseInferredData, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 993) null, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 994) propertyHolder, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 995) isComponent, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 996) propertyAccessor, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 997) entityBinder, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 998) true, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 999) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1000) context, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1001) inheritanceStatePerClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1002) ); +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 1003) propertyHolder.setInIdClass( null ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1004) inferredData = new PropertyPreloadedData( +803c73c55 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-08-28 20:07:18 +0000 1005) propertyAccessor, PropertyPath.IDENTIFIER_MAPPER_PROPERTY, compositeClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1006) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1007) Component mapper = fillComponent( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1008) propertyHolder, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1009) inferredData, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1010) baseInferredData, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1011) propertyAccessor, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1012) false, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1013) entityBinder, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1014) true, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1015) true, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1016) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1017) context, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1018) inheritanceStatePerClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1019) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1020) entityBinder.setIgnoreIdAnnotations( ignoreIdAnnotations ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1021) persistentClass.setIdentifierMapper( mapper ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1022) +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1023) //If id definition is on a mapped superclass, update the mapping +4d5174f55 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-21 03:05:24 +0000 1024) final org.hibernate.mapping.MappedSuperclass superclass = BinderHelper.getMappedSuperclassOrNull( +4d5174f55 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-21 03:05:24 +0000 1025) classWithIdClass, +4d5174f55 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-21 03:05:24 +0000 1026) inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1027) context +4d5174f55 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-21 03:05:24 +0000 1028) ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1029) if ( superclass != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1030) superclass.setDeclaredIdentifierMapper( mapper ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1031) } +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1032) else { +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1033) //we are for sure on the entity +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1034) persistentClass.setDeclaredIdentifierMapper( mapper ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1035) } +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1036) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1037) Property property = new Property(); +803c73c55 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-08-28 20:07:18 +0000 1038) property.setName( PropertyPath.IDENTIFIER_MAPPER_PROPERTY ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1039) property.setNodeName( "id" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1040) property.setUpdateable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1041) property.setInsertable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1042) property.setValue( mapper ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1043) property.setPropertyAccessorName( "embedded" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1044) persistentClass.addProperty( property ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1045) entityBinder.setIgnoreIdAnnotations( true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1046) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1047) Iterator properties = mapper.getPropertyIterator(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1048) while ( properties.hasNext() ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1049) idPropertiesIfIdClass.add( ( ( Property ) properties.next() ).getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1050) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1051) return true; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1052) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1053) else { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1054) return false; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1055) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1056) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1057) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1058) private static boolean isIdClassPkOfTheAssociatedEntity( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1059) InheritanceState.ElementsToProcess elementsToProcess, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1060) XClass compositeClass, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1061) PropertyData inferredData, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1062) PropertyData baseInferredData, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1063) AccessType propertyAccessor, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1064) Map inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1065) MetadataBuildingContext context) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1066) if ( elementsToProcess.getIdPropertyCount() == 1 ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1067) final PropertyData idPropertyOnBaseClass = getUniqueIdPropertyFromBaseClass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1068) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1069) baseInferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1070) propertyAccessor, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1071) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1072) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1073) final InheritanceState state = inheritanceStatePerClass.get( idPropertyOnBaseClass.getClassOrElement() ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1074) if ( state == null ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1075) return false; //while it is likely a user error, let's consider it is something that might happen +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1076) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1077) final XClass associatedClassWithIdClass = state.getClassWithIdClass( true ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1078) if ( associatedClassWithIdClass == null ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1079) //we cannot know for sure here unless we try and find the @EmbeddedId +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1080) //Let's not do this thorough checking but do some extra validation +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1081) final XProperty property = idPropertyOnBaseClass.getProperty(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1082) return property.isAnnotationPresent( ManyToOne.class ) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1083) || property.isAnnotationPresent( OneToOne.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1084) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1085) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1086) else { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1087) final XClass idClass = context.getBuildingOptions().getReflectionManager().toXClass( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1088) associatedClassWithIdClass.getAnnotation( IdClass.class ).value() +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1089) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1090) return idClass.equals( compositeClass ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1091) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1092) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1093) else { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1094) return false; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1095) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1096) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1097) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1098) private static Cache determineCacheSettings(XClass clazzToProcess, MetadataBuildingContext context) { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1099) Cache cacheAnn = clazzToProcess.getAnnotation( Cache.class ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1100) if ( cacheAnn != null ) { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1101) return cacheAnn; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1102) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1103) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1104) Cacheable cacheableAnn = clazzToProcess.getAnnotation( Cacheable.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1105) SharedCacheMode mode = determineSharedCacheMode( context ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1106) switch ( mode ) { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1107) case ALL: { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1108) cacheAnn = buildCacheMock( clazzToProcess.getName(), context ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1109) break; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1110) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1111) case ENABLE_SELECTIVE: { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1112) if ( cacheableAnn != null && cacheableAnn.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1113) cacheAnn = buildCacheMock( clazzToProcess.getName(), context ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1114) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1115) break; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1116) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1117) case DISABLE_SELECTIVE: { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1118) if ( cacheableAnn == null || cacheableAnn.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1119) cacheAnn = buildCacheMock( clazzToProcess.getName(), context ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1120) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1121) break; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1122) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1123) default: { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1124) // treat both NONE and UNSPECIFIED the same +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1125) break; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1126) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1127) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1128) return cacheAnn; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1129) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1130) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1131) private static SharedCacheMode determineSharedCacheMode(MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1132) return context.getBuildingOptions().getSharedCacheMode(); +7f8c1896e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-26 18:36:59 +0000 1133) } +7f8c1896e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-26 18:36:59 +0000 1134) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1135) private static Cache buildCacheMock(String region, MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1136) return new LocalCacheAnnotationImpl( region, determineCacheConcurrencyStrategy( context ) ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1137) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1138) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1139) private static CacheConcurrencyStrategy DEFAULT_CACHE_CONCURRENCY_STRATEGY; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1140) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1141) private static CacheConcurrencyStrategy determineCacheConcurrencyStrategy(MetadataBuildingContext context) { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1142) if ( DEFAULT_CACHE_CONCURRENCY_STRATEGY == null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1143) DEFAULT_CACHE_CONCURRENCY_STRATEGY = CacheConcurrencyStrategy.fromAccessType( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1144) context.getBuildingOptions().getImplicitCacheAccessType() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1145) ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1146) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1147) return DEFAULT_CACHE_CONCURRENCY_STRATEGY; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1148) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1149) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1150) @SuppressWarnings({ "ClassExplicitlyAnnotation" }) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1151) private static class LocalCacheAnnotationImpl implements Cache { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1152) private final String region; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1153) private final CacheConcurrencyStrategy usage; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1154) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1155) private LocalCacheAnnotationImpl(String region, CacheConcurrencyStrategy usage) { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1156) this.region = region; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1157) this.usage = usage; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1158) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1159) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1160) public CacheConcurrencyStrategy usage() { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1161) return usage; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1162) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1163) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1164) public String region() { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1165) return region; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1166) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1167) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1168) public String include() { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1169) return "all"; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1170) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1171) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1172) public Class annotationType() { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1173) return Cache.class; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1174) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1175) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1176) +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1177) private static PersistentClass makePersistentClass( +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1178) InheritanceState inheritanceState, +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1179) PersistentClass superEntity, +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1180) MetadataBuildingContext metadataBuildingContext) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1181) //we now know what kind of persistent entity it is +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1182) if ( !inheritanceState.hasParents() ) { +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1183) return new RootClass( metadataBuildingContext ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1184) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1185) else if ( InheritanceType.SINGLE_TABLE.equals( inheritanceState.getType() ) ) { +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1186) return new SingleTableSubclass( superEntity, metadataBuildingContext ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1187) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1188) else if ( InheritanceType.JOINED.equals( inheritanceState.getType() ) ) { +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1189) return new JoinedSubclass( superEntity, metadataBuildingContext ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1190) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1191) else if ( InheritanceType.TABLE_PER_CLASS.equals( inheritanceState.getType() ) ) { +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1192) return new UnionSubclass( superEntity, metadataBuildingContext ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1193) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1194) else { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1195) throw new AssertionFailure( "Unknown inheritance type: " + inheritanceState.getType() ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1196) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1197) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1198) +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1199) private static Ejb3JoinColumn[] makeInheritanceJoinColumns( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1200) XClass clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1201) MetadataBuildingContext context, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1202) InheritanceState inheritanceState, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1203) PersistentClass superEntity) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1204) Ejb3JoinColumn[] inheritanceJoinedColumns = null; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1205) final boolean hasJoinedColumns = inheritanceState.hasParents() +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1206) && InheritanceType.JOINED.equals( inheritanceState.getType() ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1207) if ( hasJoinedColumns ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1208) //@Inheritance(JOINED) subclass need to link back to the super entity +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1209) PrimaryKeyJoinColumns jcsAnn = clazzToProcess.getAnnotation( PrimaryKeyJoinColumns.class ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1210) boolean explicitInheritanceJoinedColumns = jcsAnn != null && jcsAnn.value().length != 0; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1211) if ( explicitInheritanceJoinedColumns ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1212) int nbrOfInhJoinedColumns = jcsAnn.value().length; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1213) PrimaryKeyJoinColumn jcAnn; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1214) inheritanceJoinedColumns = new Ejb3JoinColumn[nbrOfInhJoinedColumns]; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1215) for ( int colIndex = 0; colIndex < nbrOfInhJoinedColumns; colIndex++ ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1216) jcAnn = jcsAnn.value()[colIndex]; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1217) inheritanceJoinedColumns[colIndex] = Ejb3JoinColumn.buildJoinColumn( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1218) jcAnn, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1219) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1220) superEntity.getIdentifier(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1221) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1222) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1223) context +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1224) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1225) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1226) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1227) else { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1228) PrimaryKeyJoinColumn jcAnn = clazzToProcess.getAnnotation( PrimaryKeyJoinColumn.class ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1229) inheritanceJoinedColumns = new Ejb3JoinColumn[1]; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1230) inheritanceJoinedColumns[0] = Ejb3JoinColumn.buildJoinColumn( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1231) jcAnn, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1232) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1233) superEntity.getIdentifier(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1234) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1235) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1236) context +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1237) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1238) } +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1239) LOG.trace( "Subclass joined column(s) created" ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1240) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1241) else { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1242) if ( clazzToProcess.isAnnotationPresent( PrimaryKeyJoinColumns.class ) +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1243) || clazzToProcess.isAnnotationPresent( PrimaryKeyJoinColumn.class ) ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1244) LOG.invalidPrimaryKeyJoinColumnAnnotation(); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1245) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1246) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1247) return inheritanceJoinedColumns; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1248) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1249) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1250) private static PersistentClass getSuperEntity( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1251) XClass clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1252) Map inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1253) MetadataBuildingContext context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1254) InheritanceState inheritanceState) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1255) InheritanceState superEntityState = InheritanceState.getInheritanceStateOfSuperEntity( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1256) clazzToProcess, inheritanceStatePerClass +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1257) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1258) PersistentClass superEntity = superEntityState != null +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1259) ? context.getMetadataCollector().getEntityBinding( superEntityState.getClazz().getName() ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1260) : null; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1261) if ( superEntity == null ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1262) //check if superclass is not a potential persistent class +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1263) if ( inheritanceState.hasParents() ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1264) throw new AssertionFailure( +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1265) "Subclass has to be binded after it's mother class: " +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1266) + superEntityState.getClazz().getName() +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1267) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1268) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1269) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1270) return superEntity; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1271) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1272) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1273) private static boolean isEntityClassType(XClass clazzToProcess, AnnotatedClassType classType) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1274) if ( AnnotatedClassType.EMBEDDABLE_SUPERCLASS.equals( classType ) //will be processed by their subentities +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1275) || AnnotatedClassType.NONE.equals( classType ) //to be ignored +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1276) || AnnotatedClassType.EMBEDDABLE.equals( classType ) //allow embeddable element declaration +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1277) ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1278) if ( AnnotatedClassType.NONE.equals( classType ) +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1279) && clazzToProcess.isAnnotationPresent( org.hibernate.annotations.Entity.class ) ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1280) LOG.missingEntityAnnotation( clazzToProcess.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1281) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1282) return false; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1283) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1284) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1285) if ( !classType.equals( AnnotatedClassType.ENTITY ) ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1286) throw new AnnotationException( +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1287) "Annotated class should have a @javax.persistence.Entity, @javax.persistence.Embeddable or @javax.persistence.EmbeddedSuperclass annotation: " + clazzToProcess +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1288) .getName() +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1289) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1290) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1291) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1292) return true; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1293) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1294) +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1295) /* +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1296) * Process the filters defined on the given class, as well as all filters defined +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1297) * on the MappedSuperclass(s) in the inheritance hierarchy +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1298) */ +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1299) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1300) private static void bindFilters( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1301) XClass annotatedClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1302) EntityBinder entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1303) MetadataBuildingContext context) { +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1304) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1305) bindFilters( annotatedClass, entityBinder ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1306) +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1307) XClass classToProcess = annotatedClass.getSuperclass(); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1308) while ( classToProcess != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1309) AnnotatedClassType classType = context.getMetadataCollector().getClassType( classToProcess ); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1310) if ( AnnotatedClassType.EMBEDDABLE_SUPERCLASS.equals( classType ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1311) bindFilters( classToProcess, entityBinder ); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1312) } +83f29d1e1 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Maxim Frolov 2014-03-17 14:59:27 +0000 1313) else { +83f29d1e1 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Maxim Frolov 2014-03-17 14:59:27 +0000 1314) break; +83f29d1e1 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Maxim Frolov 2014-03-17 14:59:27 +0000 1315) } +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1316) classToProcess = classToProcess.getSuperclass(); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1317) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1318) +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1319) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1320) +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1321) private static void bindFilters(XAnnotatedElement annotatedElement, EntityBinder entityBinder) { +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1322) +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1323) Filters filtersAnn = annotatedElement.getAnnotation( Filters.class ); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1324) if ( filtersAnn != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1325) for ( Filter filter : filtersAnn.value() ) { +05dcc209a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Rob Worsnop 2012-06-26 22:40:58 +0000 1326) entityBinder.addFilter(filter); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1327) } +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1328) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1329) +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1330) Filter filterAnn = annotatedElement.getAnnotation( Filter.class ); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1331) if ( filterAnn != null ) { +05dcc209a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Rob Worsnop 2012-06-26 22:40:58 +0000 1332) entityBinder.addFilter(filterAnn); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1333) } +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1334) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1335) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1336) private static void bindFilterDefs(XAnnotatedElement annotatedElement, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1337) FilterDef defAnn = annotatedElement.getAnnotation( FilterDef.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1338) FilterDefs defsAnn = annotatedElement.getAnnotation( FilterDefs.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1339) if ( defAnn != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1340) bindFilterDef( defAnn, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1341) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1342) if ( defsAnn != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1343) for ( FilterDef def : defsAnn.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1344) bindFilterDef( def, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1345) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1346) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1347) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1348) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1349) private static void bindFilterDef(FilterDef defAnn, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1350) Map params = new HashMap(); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1351) for ( ParamDef param : defAnn.parameters() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1352) params.put( param.name(), context.getMetadataCollector().getTypeResolver().heuristicType( param.type() ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1353) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1354) FilterDefinition def = new FilterDefinition( defAnn.name(), defAnn.defaultCondition(), params ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1355) LOG.debugf( "Binding filter definition: %s", def.getFilterName() ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1356) context.getMetadataCollector().addFilterDefinition( def ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1357) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1358) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1359) private static void bindTypeDefs(XAnnotatedElement annotatedElement, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1360) TypeDef defAnn = annotatedElement.getAnnotation( TypeDef.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1361) TypeDefs defsAnn = annotatedElement.getAnnotation( TypeDefs.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1362) if ( defAnn != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1363) bindTypeDef( defAnn, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1364) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1365) if ( defsAnn != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1366) for ( TypeDef def : defsAnn.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1367) bindTypeDef( def, context ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1368) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1369) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1370) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1371) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1372) private static void bindTypeDef(TypeDef defAnn, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1373) Properties params = new Properties(); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1374) for ( Parameter param : defAnn.parameters() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1375) params.setProperty( param.name(), param.value() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1376) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1377) +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 1378) if ( BinderHelper.isEmptyAnnotationValue( defAnn.name() ) && defAnn.defaultForType().equals( void.class ) ) { +d26c00225 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-21 17:16:57 +0000 1379) throw new AnnotationException( +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1380) "Either name or defaultForType (or both) attribute should be set in TypeDef having typeClass " + +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1381) defAnn.typeClass().getName() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1382) ); +c6a32b933 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-06 07:50:35 +0000 1383) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1384) +ad17f89c4 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2011-04-12 14:07:31 +0000 1385) final String typeBindMessageF = "Binding type definition: %s"; +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 1386) if ( !BinderHelper.isEmptyAnnotationValue( defAnn.name() ) ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1387) if ( LOG.isDebugEnabled() ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1388) LOG.debugf( typeBindMessageF, defAnn.name() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1389) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1390) context.getMetadataCollector().addTypeDefinition( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1391) new TypeDefinition( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1392) defAnn.name(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1393) defAnn.typeClass(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1394) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1395) params +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1396) ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1397) ); +c6a32b933 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-06 07:50:35 +0000 1398) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1399) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1400) if ( !defAnn.defaultForType().equals( void.class ) ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1401) if ( LOG.isDebugEnabled() ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1402) LOG.debugf( typeBindMessageF, defAnn.defaultForType().getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1403) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1404) context.getMetadataCollector().addTypeDefinition( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1405) new TypeDefinition( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1406) defAnn.defaultForType().getName(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1407) defAnn.typeClass(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1408) new String[]{ defAnn.defaultForType().getName() }, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1409) params +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1410) ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1411) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1412) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1413) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1414) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1415) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1416) private static void bindFetchProfiles(XAnnotatedElement annotatedElement, MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1417) FetchProfile fetchProfileAnnotation = annotatedElement.getAnnotation( FetchProfile.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1418) FetchProfiles fetchProfileAnnotations = annotatedElement.getAnnotation( FetchProfiles.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1419) if ( fetchProfileAnnotation != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1420) bindFetchProfile( fetchProfileAnnotation, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1421) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1422) if ( fetchProfileAnnotations != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1423) for ( FetchProfile profile : fetchProfileAnnotations.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1424) bindFetchProfile( profile, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1425) } +c6a32b933 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-06 07:50:35 +0000 1426) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1427) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1428) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1429) private static void bindFetchProfile(FetchProfile fetchProfileAnnotation, MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1430) for ( FetchProfile.FetchOverride fetch : fetchProfileAnnotation.fetchOverrides() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1431) org.hibernate.annotations.FetchMode mode = fetch.mode(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1432) if ( !mode.equals( org.hibernate.annotations.FetchMode.JOIN ) ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1433) throw new MappingException( "Only FetchMode.JOIN is currently supported" ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1434) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1435) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1436) context.getMetadataCollector().addSecondPass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1437) new VerifyFetchProfileReferenceSecondPass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1438) fetchProfileAnnotation.name(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1439) fetch, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1440) context +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1441) ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1442) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1443) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1444) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1445) +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1446) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 1447) private static void bindDiscriminatorColumnToRootPersistentClass( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1448) RootClass rootClass, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 1449) Ejb3DiscriminatorColumn discriminatorColumn, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 1450) Map secondaryTables, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 1451) PropertyHolder propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1452) MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1453) if ( rootClass.getDiscriminator() == null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1454) if ( discriminatorColumn == null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1455) throw new AssertionFailure( "discriminator column should have been built" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1456) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1457) discriminatorColumn.setJoins( secondaryTables ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1458) discriminatorColumn.setPropertyHolder( propertyHolder ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1459) SimpleValue discriminatorColumnBinding = new SimpleValue( context.getMetadataCollector(), rootClass.getTable() ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 1460) rootClass.setDiscriminator( discriminatorColumnBinding ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 1461) discriminatorColumn.linkWithValue( discriminatorColumnBinding ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 1462) discriminatorColumnBinding.setTypeName( discriminatorColumn.getDiscriminatorTypeName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1463) rootClass.setPolymorphic( true ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1464) if ( LOG.isTraceEnabled() ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1465) LOG.tracev( "Setting discriminator for entity {0}", rootClass.getEntityName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1466) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1467) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1468) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1469) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1470) /** +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1471) * @param elements List of {@code ProperyData} instances +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 1472) * @param defaultAccessType The default value access strategy which has to be used in case no explicit local access +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1473) * strategy is used +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1474) * @param propertyContainer Metadata about a class and its properties +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1475) * +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 1476) * @return the number of id properties found while iterating the elements of {@code annotatedClass} using +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1477) * the determined access strategy, {@code false} otherwise. +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1478) */ +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 1479) static int addElementsOfClass( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1480) List elements, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1481) AccessType defaultAccessType, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1482) PropertyContainer propertyContainer, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1483) MetadataBuildingContext context) { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1484) int idPropertyCounter = 0; +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 1485) AccessType accessType = defaultAccessType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1486) +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 1487) if ( propertyContainer.hasExplicitAccessStrategy() ) { +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 1488) accessType = propertyContainer.getExplicitAccessStrategy(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1489) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1490) +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 1491) Collection properties = propertyContainer.getProperties( accessType ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1492) for ( XProperty p : properties ) { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1493) final int currentIdPropertyCounter = addProperty( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1494) propertyContainer, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1495) p, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1496) elements, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1497) accessType.getType(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1498) context +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1499) ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1500) idPropertyCounter += currentIdPropertyCounter; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1501) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1502) return idPropertyCounter; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1503) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1504) +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1505) private static int addProperty( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1506) PropertyContainer propertyContainer, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1507) XProperty property, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1508) List annElts, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1509) String propertyAccessor, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1510) MetadataBuildingContext context) { +6588ede3a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-19 18:57:19 +0000 1511) final XClass declaringClass = propertyContainer.getDeclaringClass(); +6588ede3a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-19 18:57:19 +0000 1512) final XClass entity = propertyContainer.getEntityAtStake(); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1513) int idPropertyCounter = 0; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1514) PropertyData propertyAnnotatedElement = new PropertyInferredData( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1515) declaringClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1516) property, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1517) propertyAccessor, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1518) context.getBuildingOptions().getReflectionManager() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1519) ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1520) +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1521) /* +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1522) * put element annotated by @Id in front +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1523) * since it has to be parsed before any association by Hibernate +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1524) */ +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1525) final XAnnotatedElement element = propertyAnnotatedElement.getProperty(); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1526) if ( element.isAnnotationPresent( Id.class ) || element.isAnnotationPresent( EmbeddedId.class ) ) { +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1527) annElts.add( 0, propertyAnnotatedElement ); +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1528) /** +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1529) * The property must be put in hibernate.properties as it's a system wide property. Fixable? +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1530) * TODO support true/false/default on the property instead of present / not present +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1531) * TODO is @Column mandatory? +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1532) * TODO add method support +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1533) */ +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1534) if ( context.getBuildingOptions().isSpecjProprietarySyntaxEnabled() ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1535) if ( element.isAnnotationPresent( Id.class ) && element.isAnnotationPresent( Column.class ) ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1536) String columnName = element.getAnnotation( Column.class ).name(); +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1537) for ( XProperty prop : declaringClass.getDeclaredProperties( AccessType.FIELD.getType() ) ) { +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1538) if ( !prop.isAnnotationPresent( MapsId.class ) ) { +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1539) /** +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1540) * The detection of a configured individual JoinColumn differs between Annotation +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1541) * and XML configuration processing. +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1542) */ +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1543) boolean isRequiredAnnotationPresent = false; +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1544) JoinColumns groupAnnotation = prop.getAnnotation( JoinColumns.class ); +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1545) if ( (prop.isAnnotationPresent( JoinColumn.class ) +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1546) && prop.getAnnotation( JoinColumn.class ).name().equals( columnName )) ) { +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1547) isRequiredAnnotationPresent = true; +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1548) } +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1549) else if ( prop.isAnnotationPresent( JoinColumns.class ) ) { +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1550) for ( JoinColumn columnAnnotation : groupAnnotation.value() ) { +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1551) if ( columnName.equals( columnAnnotation.name() ) ) { +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1552) isRequiredAnnotationPresent = true; +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1553) break; +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1554) } +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1555) } +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1556) } +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1557) if ( isRequiredAnnotationPresent ) { +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1558) //create a PropertyData fpr the specJ property holding the mapping +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1559) PropertyData specJPropertyData = new PropertyInferredData( +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1560) declaringClass, +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1561) //same dec +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1562) prop, +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1563) // the actual @XToOne property +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1564) propertyAccessor, +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1565) //TODO we should get the right accessor but the same as id would do +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1566) context.getBuildingOptions().getReflectionManager() +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1567) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1568) context.getMetadataCollector().addPropertyAnnotatedWithMapsIdSpecj( +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1569) entity, +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1570) specJPropertyData, +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1571) element.toString() +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1572) ); +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1573) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1574) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1575) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1576) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1577) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1578) +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 1579) if ( element.isAnnotationPresent( ManyToOne.class ) || element.isAnnotationPresent( OneToOne.class ) ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1580) context.getMetadataCollector().addToOneAndIdProperty( entity, propertyAnnotatedElement ); +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 1581) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1582) idPropertyCounter++; +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1583) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1584) else { +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1585) annElts.add( propertyAnnotatedElement ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1586) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1587) if ( element.isAnnotationPresent( MapsId.class ) ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1588) context.getMetadataCollector().addPropertyAnnotatedWithMapsId( entity, propertyAnnotatedElement ); +6588ede3a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-19 18:57:19 +0000 1589) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1590) +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1591) return idPropertyCounter; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1592) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1593) +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1594) /* +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1595) * Process annotation of a particular property +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1596) */ +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1597) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1598) private static void processElementAnnotations( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1599) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1600) Nullability nullability, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1601) PropertyData inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1602) HashMap classGenerators, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1603) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1604) boolean isIdentifierMapper, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1605) boolean isComponentEmbedded, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1606) boolean inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1607) MetadataBuildingContext context, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1608) Map inheritanceStatePerClass) throws MappingException { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1609) /** +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1610) * inSecondPass can only be used to apply right away the second pass of a composite-element +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1611) * Because it's a value type, there is no bidirectional association, hence second pass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1612) * ordering does not matter +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1613) */ +6588ede3a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-19 18:57:19 +0000 1614) +cbbadea53 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Nikolay Shestakov 2013-04-12 13:56:41 +0000 1615) final boolean traceEnabled = LOG.isTraceEnabled(); +cbbadea53 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Nikolay Shestakov 2013-04-12 13:56:41 +0000 1616) if ( traceEnabled ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1617) LOG.tracev( "Processing annotations of {0}.{1}" , propertyHolder.getEntityName(), inferredData.getPropertyName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1618) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1619) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1620) final XProperty property = inferredData.getProperty(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1621) if ( property.isAnnotationPresent( Parent.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1622) if ( propertyHolder.isComponent() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1623) propertyHolder.setParentProperty( property.getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1624) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1625) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1626) throw new AnnotationException( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1627) "@Parent cannot be applied outside an embeddable object: " +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 1628) + BinderHelper.getPath( propertyHolder, inferredData ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1629) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1630) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1631) return; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1632) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1633) +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 1634) ColumnsBuilder columnsBuilder = new ColumnsBuilder( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1635) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1636) nullability, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1637) property, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1638) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1639) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1640) context +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 1641) ).extractMetadata(); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 1642) Ejb3Column[] columns = columnsBuilder.getColumns(); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 1643) Ejb3JoinColumn[] joinColumns = columnsBuilder.getJoinColumns(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1644) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1645) final XClass returnedClass = inferredData.getClassOrElement(); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 1646) +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1647) //prepare PropertyBinder +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1648) PropertyBinder propertyBinder = new PropertyBinder(); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1649) propertyBinder.setName( inferredData.getPropertyName() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1650) propertyBinder.setReturnedClassName( inferredData.getTypeName() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1651) propertyBinder.setAccessType( inferredData.getDefaultAccess() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1652) propertyBinder.setHolder( propertyHolder ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1653) propertyBinder.setProperty( property ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1654) propertyBinder.setReturnedClass( inferredData.getPropertyClass() ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1655) propertyBinder.setBuildingContext( context ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1656) if ( isIdentifierMapper ) { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1657) propertyBinder.setInsertable( false ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1658) propertyBinder.setUpdatable( false ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1659) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1660) propertyBinder.setDeclaringClass( inferredData.getDeclaringClass() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1661) propertyBinder.setEntityBinder( entityBinder ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1662) propertyBinder.setInheritanceStatePerClass( inheritanceStatePerClass ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1663) +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 1664) boolean isId = !entityBinder.isIgnoreIdAnnotations() && +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1665) ( property.isAnnotationPresent( Id.class ) +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 1666) || property.isAnnotationPresent( EmbeddedId.class ) ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1667) propertyBinder.setId( isId ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1668) +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 1669) if ( property.isAnnotationPresent( Version.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1670) if ( isIdentifierMapper ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1671) throw new AnnotationException( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1672) "@IdClass class should not have @Version property" +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1673) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1674) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1675) if ( !( propertyHolder.getPersistentClass() instanceof RootClass ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1676) throw new AnnotationException( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1677) "Unable to define/override @Version on a subclass: " +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1678) + propertyHolder.getEntityName() +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1679) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1680) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1681) if ( !propertyHolder.isEntity() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1682) throw new AnnotationException( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1683) "Unable to define @Version on an embedded class: " +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1684) + propertyHolder.getEntityName() +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1685) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1686) } +cbbadea53 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Nikolay Shestakov 2013-04-12 13:56:41 +0000 1687) if ( traceEnabled ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1688) LOG.tracev( "{0} is a version property", inferredData.getPropertyName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1689) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1690) RootClass rootClass = ( RootClass ) propertyHolder.getPersistentClass(); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1691) propertyBinder.setColumns( columns ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1692) Property prop = propertyBinder.makePropertyValueAndBind(); +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 1693) setVersionInformation( property, propertyBinder ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1694) rootClass.setVersion( prop ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1695) +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1696) //If version is on a mapped superclass, update the mapping +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1697) final org.hibernate.mapping.MappedSuperclass superclass = BinderHelper.getMappedSuperclassOrNull( +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1698) inferredData.getDeclaringClass(), +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1699) inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1700) context +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1701) ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1702) if ( superclass != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1703) superclass.setDeclaredVersion( prop ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1704) } +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1705) else { +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1706) //we know the property is on the actual entity +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1707) rootClass.setDeclaredVersion( prop ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1708) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1709) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1710) SimpleValue simpleValue = ( SimpleValue ) prop.getValue(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1711) simpleValue.setNullValue( "undefined" ); +b51164aef hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-26 23:50:39 +0000 1712) rootClass.setOptimisticLockStyle( OptimisticLockStyle.VERSION ); +cbbadea53 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Nikolay Shestakov 2013-04-12 13:56:41 +0000 1713) if ( traceEnabled ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1714) LOG.tracev( "Version name: {0}, unsavedValue: {1}", rootClass.getVersion().getName(), +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1715) ( (SimpleValue) rootClass.getVersion().getValue() ).getNullValue() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1716) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1717) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1718) else { +3d911bd65 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 13:22:43 +0000 1719) final boolean forcePersist = property.isAnnotationPresent( MapsId.class ) +3d911bd65 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 13:22:43 +0000 1720) || property.isAnnotationPresent( Id.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1721) if ( property.isAnnotationPresent( ManyToOne.class ) ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1722) ManyToOne ann = property.getAnnotation( ManyToOne.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1723) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1724) //check validity +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1725) if ( property.isAnnotationPresent( Column.class ) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1726) || property.isAnnotationPresent( Columns.class ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1727) throw new AnnotationException( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1728) "@Column(s) not allowed on a @ManyToOne property: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1729) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1730) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1731) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1732) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1733) Cascade hibernateCascade = property.getAnnotation( Cascade.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1734) NotFound notFound = property.getAnnotation( NotFound.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1735) boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1736) OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1737) boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1738) JoinTable assocTable = propertyHolder.getJoinTable( property ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1739) if ( assocTable != null ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1740) Join join = propertyHolder.addJoin( assocTable, false ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1741) for ( Ejb3JoinColumn joinColumn : joinColumns ) { +1f9c157db hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-22 19:41:00 +0000 1742) joinColumn.setExplicitTableName( join.getTable().getName() ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1743) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1744) } +3d911bd65 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 13:22:43 +0000 1745) final boolean mandatory = !ann.optional() || forcePersist; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1746) bindManyToOne( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1747) getCascadeStrategy( ann.cascade(), hibernateCascade, false, forcePersist ), +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1748) joinColumns, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1749) !mandatory, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1750) ignoreNotFound, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1751) onDeleteCascade, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1752) ToOneBinder.getTargetEntity( inferredData, context ), +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1753) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1754) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1755) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1756) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1757) inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1758) propertyBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1759) context +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1760) ); +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1761) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1762) else if ( property.isAnnotationPresent( OneToOne.class ) ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1763) OneToOne ann = property.getAnnotation( OneToOne.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1764) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1765) //check validity +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1766) if ( property.isAnnotationPresent( Column.class ) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1767) || property.isAnnotationPresent( Columns.class ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1768) throw new AnnotationException( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1769) "@Column(s) not allowed on a @OneToOne property: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1770) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1771) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1772) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1773) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1774) //FIXME support a proper PKJCs +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1775) boolean trueOneToOne = property.isAnnotationPresent( PrimaryKeyJoinColumn.class ) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1776) || property.isAnnotationPresent( PrimaryKeyJoinColumns.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1777) Cascade hibernateCascade = property.getAnnotation( Cascade.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1778) NotFound notFound = property.getAnnotation( NotFound.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1779) boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1780) OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1781) boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1782) JoinTable assocTable = propertyHolder.getJoinTable( property ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1783) if ( assocTable != null ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1784) Join join = propertyHolder.addJoin( assocTable, false ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1785) for ( Ejb3JoinColumn joinColumn : joinColumns ) { +1f9c157db hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-22 19:41:00 +0000 1786) joinColumn.setExplicitTableName( join.getTable().getName() ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1787) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1788) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1789) //MapsId means the columns belong to the pk => not null +c180d721c hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Gail Badner 2011-10-12 08:56:56 +0000 1790) //@OneToOne with @PKJC can still be optional +c180d721c hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Gail Badner 2011-10-12 08:56:56 +0000 1791) final boolean mandatory = !ann.optional() || forcePersist; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1792) bindOneToOne( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1793) getCascadeStrategy( ann.cascade(), hibernateCascade, ann.orphanRemoval(), forcePersist ), +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1794) joinColumns, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1795) !mandatory, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1796) getFetchMode( ann.fetch() ), +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1797) ignoreNotFound, onDeleteCascade, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1798) ToOneBinder.getTargetEntity( inferredData, context ), +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1799) propertyHolder, +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1800) inferredData, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1801) ann.mappedBy(), +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1802) trueOneToOne, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1803) isIdentifierMapper, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1804) inSecondPass, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1805) propertyBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1806) context +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1807) ); +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1808) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1809) else if ( property.isAnnotationPresent( org.hibernate.annotations.Any.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1810) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1811) //check validity +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1812) if ( property.isAnnotationPresent( Column.class ) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1813) || property.isAnnotationPresent( Columns.class ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1814) throw new AnnotationException( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1815) "@Column(s) not allowed on a @Any property: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1816) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1817) ); +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1818) } +20d22941c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-21 02:07:50 +0000 1819) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1820) Cascade hibernateCascade = property.getAnnotation( Cascade.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1821) OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1822) boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1823) JoinTable assocTable = propertyHolder.getJoinTable( property ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1824) if ( assocTable != null ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1825) Join join = propertyHolder.addJoin( assocTable, false ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1826) for ( Ejb3JoinColumn joinColumn : joinColumns ) { +1f9c157db hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-22 19:41:00 +0000 1827) joinColumn.setExplicitTableName( join.getTable().getName() ); +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1828) } +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1829) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1830) bindAny( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1831) getCascadeStrategy( null, hibernateCascade, false, forcePersist ), +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1832) //@Any has not cascade attribute +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1833) joinColumns, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1834) onDeleteCascade, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1835) nullability, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1836) propertyHolder, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1837) inferredData, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1838) entityBinder, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1839) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1840) context +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1841) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1842) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1843) else if ( property.isAnnotationPresent( OneToMany.class ) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1844) || property.isAnnotationPresent( ManyToMany.class ) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1845) || property.isAnnotationPresent( ElementCollection.class ) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1846) || property.isAnnotationPresent( ManyToAny.class ) ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1847) OneToMany oneToManyAnn = property.getAnnotation( OneToMany.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1848) ManyToMany manyToManyAnn = property.getAnnotation( ManyToMany.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1849) ElementCollection elementCollectionAnn = property.getAnnotation( ElementCollection.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1850) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1851) final IndexColumn indexColumn; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1852) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1853) if ( property.isAnnotationPresent( OrderColumn.class ) ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1854) indexColumn = IndexColumn.buildColumnFromAnnotation( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1855) property.getAnnotation( OrderColumn.class ), +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1856) propertyHolder, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1857) inferredData, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1858) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1859) context +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1860) ); +54bc9fbf9 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 17:26:33 +0000 1861) if ( property.isAnnotationPresent( ListIndexBase.class ) ) { +54bc9fbf9 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 17:26:33 +0000 1862) indexColumn.setBase( ( property.getAnnotation( ListIndexBase.class ) ).value() ); +54bc9fbf9 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 17:26:33 +0000 1863) } +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1864) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1865) else { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1866) //if @IndexColumn is not there, the generated IndexColumn is an implicit column and not used. +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1867) //so we can leave the legacy processing as the default +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1868) indexColumn = IndexColumn.buildColumnFromAnnotation( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1869) property.getAnnotation( org.hibernate.annotations.IndexColumn.class ), +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1870) propertyHolder, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1871) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1872) context +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1873) ); +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1874) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1875) CollectionBinder collectionBinder = CollectionBinder.getCollectionBinder( +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1876) propertyHolder.getEntityName(), +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1877) property, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1878) !indexColumn.isImplicit(), +36c135ab6 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-03-05 16:24:47 +0000 1879) property.isAnnotationPresent( MapKeyType.class ), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1880) context +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1881) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1882) collectionBinder.setIndexColumn( indexColumn ); +232a77e5d core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-26 21:00:47 +0000 1883) collectionBinder.setMapKey( property.getAnnotation( MapKey.class ) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1884) collectionBinder.setPropertyName( inferredData.getPropertyName() ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1885) +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1886) collectionBinder.setBatchSize( property.getAnnotation( BatchSize.class ) ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1887) +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1888) collectionBinder.setJpaOrderBy( property.getAnnotation( javax.persistence.OrderBy.class ) ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1889) collectionBinder.setSqlOrderBy( property.getAnnotation( OrderBy.class ) ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1890) +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1891) collectionBinder.setSort( property.getAnnotation( Sort.class ) ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1892) collectionBinder.setNaturalSort( property.getAnnotation( SortNatural.class ) ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1893) collectionBinder.setComparatorSort( property.getAnnotation( SortComparator.class ) ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1894) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1895) Cache cachAnn = property.getAnnotation( Cache.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1896) collectionBinder.setCache( cachAnn ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1897) collectionBinder.setPropertyHolder( propertyHolder ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1898) Cascade hibernateCascade = property.getAnnotation( Cascade.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1899) NotFound notFound = property.getAnnotation( NotFound.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1900) boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1901) collectionBinder.setIgnoreNotFound( ignoreNotFound ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1902) collectionBinder.setCollectionType( inferredData.getProperty().getElementClass() ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1903) collectionBinder.setBuildingContext( context ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1904) collectionBinder.setAccessType( inferredData.getDefaultAccess() ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1905) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1906) Ejb3Column[] elementColumns; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1907) //do not use "element" if you are a JPA 2 @ElementCollection only for legacy Hibernate mappings +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1908) boolean isJPA2ForValueMapping = property.isAnnotationPresent( ElementCollection.class ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1909) PropertyData virtualProperty = isJPA2ForValueMapping ? inferredData : new WrappedInferredData( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1910) inferredData, "element" +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1911) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1912) if ( property.isAnnotationPresent( Column.class ) || property.isAnnotationPresent( +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1913) Formula.class +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1914) ) ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1915) Column ann = property.getAnnotation( Column.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1916) Formula formulaAnn = property.getAnnotation( Formula.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1917) elementColumns = Ejb3Column.buildColumnFromAnnotation( +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1918) new Column[] { ann }, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1919) formulaAnn, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1920) nullability, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1921) propertyHolder, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1922) virtualProperty, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1923) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1924) context +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1925) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1926) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1927) else if ( property.isAnnotationPresent( Columns.class ) ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1928) Columns anns = property.getAnnotation( Columns.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1929) elementColumns = Ejb3Column.buildColumnFromAnnotation( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1930) anns.columns(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1931) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1932) nullability, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1933) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1934) virtualProperty, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1935) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1936) context +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1937) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1938) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1939) else { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1940) elementColumns = Ejb3Column.buildColumnFromAnnotation( +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1941) null, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1942) null, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1943) nullability, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1944) propertyHolder, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1945) virtualProperty, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1946) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1947) context +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1948) ); +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1949) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1950) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1951) Column[] keyColumns = null; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1952) //JPA 2 has priority and has different default column values, differenciate legacy from JPA 2 +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1953) Boolean isJPA2 = null; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1954) if ( property.isAnnotationPresent( MapKeyColumn.class ) ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1955) isJPA2 = Boolean.TRUE; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1956) keyColumns = new Column[] { new MapKeyColumnDelegator( property.getAnnotation( MapKeyColumn.class ) ) }; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1957) } +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1958) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1959) //not explicitly legacy +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1960) if ( isJPA2 == null ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1961) isJPA2 = Boolean.TRUE; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1962) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1963) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1964) //nullify empty array +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1965) keyColumns = keyColumns != null && keyColumns.length > 0 ? keyColumns : null; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1966) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1967) //"mapkey" is the legacy column name of the key column pre JPA 2 +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1968) PropertyData mapKeyVirtualProperty = new WrappedInferredData( inferredData, "mapkey" ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1969) Ejb3Column[] mapColumns = Ejb3Column.buildColumnFromAnnotation( +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1970) keyColumns, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1971) null, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1972) Nullability.FORCED_NOT_NULL, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1973) propertyHolder, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1974) isJPA2 ? inferredData : mapKeyVirtualProperty, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1975) isJPA2 ? "_KEY" : null, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1976) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1977) context +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1978) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1979) collectionBinder.setMapKeyColumns( mapColumns ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1980) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1981) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1982) JoinColumn[] joinKeyColumns = null; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1983) //JPA 2 has priority and has different default column values, differenciate legacy from JPA 2 +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1984) Boolean isJPA2 = null; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1985) if ( property.isAnnotationPresent( MapKeyJoinColumns.class ) ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1986) isJPA2 = Boolean.TRUE; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1987) final MapKeyJoinColumn[] mapKeyJoinColumns = property.getAnnotation( MapKeyJoinColumns.class ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1988) .value(); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1989) joinKeyColumns = new JoinColumn[mapKeyJoinColumns.length]; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1990) int index = 0; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1991) for ( MapKeyJoinColumn joinColumn : mapKeyJoinColumns ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1992) joinKeyColumns[index] = new MapKeyJoinColumnDelegator( joinColumn ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1993) index++; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1994) } +74df160f3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2011-03-14 17:53:52 +0000 1995) if ( property.isAnnotationPresent( MapKeyJoinColumn.class ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1996) throw new AnnotationException( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1997) "@MapKeyJoinColumn and @MapKeyJoinColumns used on the same property: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1998) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1999) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2000) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2001) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2002) else if ( property.isAnnotationPresent( MapKeyJoinColumn.class ) ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2003) isJPA2 = Boolean.TRUE; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2004) joinKeyColumns = new JoinColumn[] { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2005) new MapKeyJoinColumnDelegator( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2006) property.getAnnotation( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2007) MapKeyJoinColumn.class +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2008) ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2009) ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2010) }; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2011) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2012) //not explicitly legacy +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2013) if ( isJPA2 == null ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2014) isJPA2 = Boolean.TRUE; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2015) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2016) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2017) PropertyData mapKeyVirtualProperty = new WrappedInferredData( inferredData, "mapkey" ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2018) Ejb3JoinColumn[] mapJoinColumns = Ejb3JoinColumn.buildJoinColumnsWithDefaultColumnSuffix( +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2019) joinKeyColumns, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2020) null, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2021) entityBinder.getSecondaryTables(), +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2022) propertyHolder, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2023) isJPA2 ? inferredData.getPropertyName() : mapKeyVirtualProperty.getPropertyName(), +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2024) isJPA2 ? "_KEY" : null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2025) context +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2026) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2027) collectionBinder.setMapKeyManyToManyColumns( mapJoinColumns ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2028) } +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2029) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2030) //potential element +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2031) collectionBinder.setEmbedded( property.isAnnotationPresent( Embedded.class ) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2032) collectionBinder.setElementColumns( elementColumns ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2033) collectionBinder.setProperty( property ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2034) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2035) //TODO enhance exception with @ManyToAny and @CollectionOfElements +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2036) if ( oneToManyAnn != null && manyToManyAnn != null ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2037) throw new AnnotationException( +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2038) "@OneToMany and @ManyToMany on the same property is not allowed: " +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2039) + propertyHolder.getEntityName() + "." + inferredData.getPropertyName() +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2040) ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2041) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2042) String mappedBy = null; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2043) if ( oneToManyAnn != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2044) for ( Ejb3JoinColumn column : joinColumns ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2045) if ( column.isSecondary() ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2046) throw new NotYetImplementedException( "Collections having FK in secondary table" ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2047) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2048) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2049) collectionBinder.setFkJoinColumns( joinColumns ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2050) mappedBy = oneToManyAnn.mappedBy(); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2051) collectionBinder.setTargetEntity( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2052) context.getBuildingOptions().getReflectionManager().toXClass( oneToManyAnn.targetEntity() ) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2053) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2054) collectionBinder.setCascadeStrategy( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2055) getCascadeStrategy( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2056) oneToManyAnn.cascade(), hibernateCascade, oneToManyAnn.orphanRemoval(), false +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2057) ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2058) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2059) collectionBinder.setOneToMany( true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2060) } +ffb14b28b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2011-06-27 14:58:18 +0000 2061) else if ( elementCollectionAnn != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2062) for ( Ejb3JoinColumn column : joinColumns ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2063) if ( column.isSecondary() ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2064) throw new NotYetImplementedException( "Collections having FK in secondary table" ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2065) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2066) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2067) collectionBinder.setFkJoinColumns( joinColumns ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2068) mappedBy = ""; +ffb14b28b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2011-06-27 14:58:18 +0000 2069) final Class targetElement = elementCollectionAnn.targetClass(); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2070) collectionBinder.setTargetEntity( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2071) context.getBuildingOptions().getReflectionManager().toXClass( targetElement ) +66072429f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:46:51 +0000 2072) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2073) //collectionBinder.setCascadeStrategy( getCascadeStrategy( embeddedCollectionAnn.cascade(), hibernateCascade ) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2074) collectionBinder.setOneToMany( true ); +66072429f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:46:51 +0000 2075) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2076) else if ( manyToManyAnn != null ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2077) mappedBy = manyToManyAnn.mappedBy(); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2078) collectionBinder.setTargetEntity( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2079) context.getBuildingOptions().getReflectionManager().toXClass( manyToManyAnn.targetEntity() ) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2080) ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2081) collectionBinder.setCascadeStrategy( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2082) getCascadeStrategy( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2083) manyToManyAnn.cascade(), hibernateCascade, false, false +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2084) ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2085) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2086) collectionBinder.setOneToMany( false ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2087) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2088) else if ( property.isAnnotationPresent( ManyToAny.class ) ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2089) mappedBy = ""; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2090) collectionBinder.setTargetEntity( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2091) context.getBuildingOptions().getReflectionManager().toXClass( void.class ) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2092) ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2093) collectionBinder.setCascadeStrategy( getCascadeStrategy( null, hibernateCascade, false, false ) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2094) collectionBinder.setOneToMany( false ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2095) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2096) collectionBinder.setMappedBy( mappedBy ); +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2097) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2098) bindJoinedTableAssociation( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2099) property, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2100) context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2101) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2102) collectionBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2103) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2104) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2105) mappedBy +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2106) ); +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2107) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2108) OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2109) boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2110) collectionBinder.setCascadeDeleteEnabled( onDeleteCascade ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2111) if ( isIdentifierMapper ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2112) collectionBinder.setInsertable( false ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2113) collectionBinder.setUpdatable( false ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2114) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2115) if ( property.isAnnotationPresent( CollectionId.class ) ) { //do not compute the generators unless necessary +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2116) HashMap localGenerators = ( HashMap ) classGenerators.clone(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2117) localGenerators.putAll( buildLocalGenerators( property, context ) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2118) collectionBinder.setLocalGenerators( localGenerators ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2119) +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2120) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2121) collectionBinder.setInheritanceStatePerClass( inheritanceStatePerClass ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2122) collectionBinder.setDeclaringClass( inferredData.getDeclaringClass() ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2123) collectionBinder.bind(); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2124) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2125) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2126) //Either a regular property or a basic @Id or @EmbeddedId while not ignoring id annotations +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2127) else if ( !isId || !entityBinder.isIgnoreIdAnnotations() ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2128) //define whether the type is a component or not +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2129) +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2130) boolean isComponent = false; +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2131) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2132) //Overrides from @MapsId if needed +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2133) boolean isOverridden = false; +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2134) if ( isId || propertyHolder.isOrWithinEmbeddedId() || propertyHolder.isInIdClass() ) { +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2135) //the associated entity could be using an @IdClass making the overridden property a component +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2136) final PropertyData overridingProperty = BinderHelper.getPropertyOverriddenByMapperOrMapsId( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2137) isId, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2138) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2139) property.getName(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2140) context +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2141) ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2142) if ( overridingProperty != null ) { +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2143) isOverridden = true; +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2144) final InheritanceState state = inheritanceStatePerClass.get( overridingProperty.getClassOrElement() ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2145) if ( state != null ) { +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2146) isComponent = isComponent || state.hasIdClassOrEmbeddedId(); +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2147) } +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2148) //Get the new column +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2149) columns = columnsBuilder.overrideColumnFromMapperOrMapsIdProperty( isId ); +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2150) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2151) } +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2152) +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2153) isComponent = isComponent +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2154) || property.isAnnotationPresent( Embedded.class ) +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2155) || property.isAnnotationPresent( EmbeddedId.class ) +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2156) || returnedClass.isAnnotationPresent( Embeddable.class ); +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2157) +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2158) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2159) if ( isComponent ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2160) String referencedEntityName = null; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2161) if ( isOverridden ) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2162) final PropertyData mapsIdProperty = BinderHelper.getPropertyOverriddenByMapperOrMapsId( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2163) isId, propertyHolder, property.getName(), context +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2164) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2165) referencedEntityName = mapsIdProperty.getClassOrElementName(); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2166) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2167) AccessType propertyAccessor = entityBinder.getPropertyAccessor( property ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2168) propertyBinder = bindComponent( +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2169) inferredData, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2170) propertyHolder, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2171) propertyAccessor, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2172) entityBinder, +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2173) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2174) context, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2175) isComponentEmbedded, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2176) isId, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2177) inheritanceStatePerClass, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2178) referencedEntityName, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2179) isOverridden ? ( Ejb3JoinColumn[] ) columns : null +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2180) ); +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2181) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2182) else { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2183) //provide the basic property mapping +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2184) boolean optional = true; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2185) boolean lazy = false; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2186) if ( property.isAnnotationPresent( Basic.class ) ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2187) Basic ann = property.getAnnotation( Basic.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2188) optional = ann.optional(); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2189) lazy = ann.fetch() == FetchType.LAZY; +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2190) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2191) //implicit type will check basic types and Serializable classes +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2192) if ( isId || ( !optional && nullability != Nullability.FORCED_NULL ) ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2193) //force columns to not null +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2194) for ( Ejb3Column col : columns ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2195) col.forceNotNull(); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2196) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2197) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2198) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2199) propertyBinder.setLazy( lazy ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2200) propertyBinder.setColumns( columns ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2201) if ( isOverridden ) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2202) final PropertyData mapsIdProperty = BinderHelper.getPropertyOverriddenByMapperOrMapsId( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2203) isId, propertyHolder, property.getName(), context +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2204) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2205) propertyBinder.setReferencedEntityName( mapsIdProperty.getClassOrElementName() ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2206) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2207) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2208) propertyBinder.makePropertyValueAndBind(); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2209) +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2210) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2211) if ( isOverridden ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2212) final PropertyData mapsIdProperty = BinderHelper.getPropertyOverriddenByMapperOrMapsId( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2213) isId, propertyHolder, property.getName(), context +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2214) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2215) Map localGenerators = ( HashMap ) classGenerators.clone(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2216) final IdentifierGeneratorDefinition.Builder foreignGeneratorBuilder = new IdentifierGeneratorDefinition.Builder(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2217) foreignGeneratorBuilder.setName( "Hibernate-local--foreign generator" ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2218) foreignGeneratorBuilder.setStrategy( "foreign" ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2219) foreignGeneratorBuilder.addParam( "property", mapsIdProperty.getPropertyName() ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2220) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2221) final IdentifierGeneratorDefinition foreignGenerator = foreignGeneratorBuilder.build(); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2222) localGenerators.put( foreignGenerator.getName(), foreignGenerator ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2223) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2224) BinderHelper.makeIdGenerator( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2225) ( SimpleValue ) propertyBinder.getValue(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2226) foreignGenerator.getStrategy(), +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2227) foreignGenerator.getName(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2228) context, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2229) localGenerators +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2230) ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2231) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2232) if ( isId ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2233) //components and regular basic types create SimpleValue objects +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2234) final SimpleValue value = ( SimpleValue ) propertyBinder.getValue(); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2235) if ( !isOverridden ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2236) processId( +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2237) propertyHolder, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2238) inferredData, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2239) value, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2240) classGenerators, +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2241) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2242) context +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2243) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2244) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2245) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2246) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2247) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2248) //init index +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2249) //process indexes after everything: in second pass, many to one has to be done before indexes +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2250) Index index = property.getAnnotation( Index.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2251) if ( index != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2252) if ( joinColumns != null ) { +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 2253) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2254) for ( Ejb3Column column : joinColumns ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2255) column.addIndex( index, inSecondPass ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2256) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2257) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2258) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2259) if ( columns != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2260) for ( Ejb3Column column : columns ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2261) column.addIndex( index, inSecondPass ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2262) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2263) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2264) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2265) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2266) +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2267) // Natural ID columns must reside in one single UniqueKey within the Table. +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2268) // For now, simply ensure consistent naming. +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2269) // TODO: AFAIK, there really isn't a reason for these UKs to be created +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2270) // on the secondPass. This whole area should go away... +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2271) NaturalId naturalIdAnn = property.getAnnotation( NaturalId.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2272) if ( naturalIdAnn != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2273) if ( joinColumns != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2274) for ( Ejb3Column column : joinColumns ) { +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2275) String keyName = "UK_" + Constraint.hashedName( column.getTable().getName() + "_NaturalID" ); +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2276) column.addUniqueKey( keyName, inSecondPass ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2277) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2278) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2279) else { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2280) for ( Ejb3Column column : columns ) { +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2281) String keyName = "UK_" + Constraint.hashedName( column.getTable().getName() + "_NaturalID" ); +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2282) column.addUniqueKey( keyName, inSecondPass ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2283) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2284) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2285) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2286) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2287) +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2288) private static void setVersionInformation(XProperty property, PropertyBinder propertyBinder) { +a9b1425f3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (John Verhaeg 2010-12-21 21:51:02 +0000 2289) propertyBinder.getSimpleValueBinder().setVersion( true ); +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2290) if(property.isAnnotationPresent( Source.class )) { +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2291) Source source = property.getAnnotation( Source.class ); +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2292) propertyBinder.getSimpleValueBinder().setTimestampVersionType( source.value().typeName() ); +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2293) } +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2294) } +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2295) +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2296) private static void processId( +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2297) PropertyHolder propertyHolder, +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2298) PropertyData inferredData, +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2299) SimpleValue idValue, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2300) HashMap classGenerators, +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2301) boolean isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2302) MetadataBuildingContext buildingContext) { +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2303) if ( isIdentifierMapper ) { +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2304) throw new AnnotationException( +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2305) "@IdClass class should not have @Id nor @EmbeddedId properties: " +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2306) + BinderHelper.getPath( propertyHolder, inferredData ) +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2307) ); +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2308) } +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2309) XClass returnedClass = inferredData.getClassOrElement(); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2310) XProperty property = inferredData.getProperty(); +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2311) //clone classGenerator and override with local values +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2312) HashMap localGenerators = ( HashMap ) classGenerators.clone(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2313) localGenerators.putAll( buildLocalGenerators( property, buildingContext ) ); +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2314) +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2315) //manage composite related metadata +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2316) //guess if its a component and find id data access (property, field etc) +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2317) final boolean isComponent = returnedClass.isAnnotationPresent( Embeddable.class ) +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2318) || property.isAnnotationPresent( EmbeddedId.class ); +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2319) +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2320) GeneratedValue generatedValue = property.getAnnotation( GeneratedValue.class ); +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2321) String generatorType = generatedValue != null +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2322) ? generatorType( generatedValue.strategy(), buildingContext, returnedClass ) +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2323) : "assigned"; +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2324) String generatorName = generatedValue != null +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2325) ? generatedValue.generator() +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2326) : BinderHelper.ANNOTATION_STRING_DEFAULT; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2327) if ( isComponent ) { +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2328) //a component must not have any generator +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2329) generatorType = "assigned"; +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2330) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2331) BinderHelper.makeIdGenerator( idValue, generatorType, generatorName, buildingContext, localGenerators ); +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2332) +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 2333) if ( LOG.isTraceEnabled() ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 2334) LOG.tracev( "Bind {0} on {1}", ( isComponent ? "@EmbeddedId" : "@Id" ), inferredData.getPropertyName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 2335) } +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2336) } +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2337) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2338) //TODO move that to collection binder? +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2339) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2340) private static void bindJoinedTableAssociation( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2341) XProperty property, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2342) MetadataBuildingContext buildingContext, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2343) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2344) CollectionBinder collectionBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2345) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2346) PropertyData inferredData, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2347) String mappedBy) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2348) TableBinder associationTableBinder = new TableBinder(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2349) JoinColumn[] annJoins; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2350) JoinColumn[] annInverseJoins; +b1f925458 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-12 18:48:42 +0000 2351) JoinTable assocTable = propertyHolder.getJoinTable( property ); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2352) CollectionTable collectionTable = property.getAnnotation( CollectionTable.class ); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2353) if ( assocTable != null || collectionTable != null ) { +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2354) +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2355) final String catalog; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2356) final String schema; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2357) final String tableName; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2358) final UniqueConstraint[] uniqueConstraints; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2359) final JoinColumn[] joins; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2360) final JoinColumn[] inverseJoins; +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2361) final javax.persistence.Index[] jpaIndexes; +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2362) +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2363) +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2364) //JPA 2 has priority +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2365) if ( collectionTable != null ) { +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2366) catalog = collectionTable.catalog(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2367) schema = collectionTable.schema(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2368) tableName = collectionTable.name(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2369) uniqueConstraints = collectionTable.uniqueConstraints(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2370) joins = collectionTable.joinColumns(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2371) inverseJoins = null; +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2372) jpaIndexes = collectionTable.indexes(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2373) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2374) else { +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2375) catalog = assocTable.catalog(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2376) schema = assocTable.schema(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2377) tableName = assocTable.name(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2378) uniqueConstraints = assocTable.uniqueConstraints(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2379) joins = assocTable.joinColumns(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2380) inverseJoins = assocTable.inverseJoinColumns(); +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2381) jpaIndexes = assocTable.indexes(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2382) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2383) +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2384) collectionBinder.setExplicitAssociationTable( true ); +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2385) if ( jpaIndexes != null && jpaIndexes.length > 0 ) { +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2386) associationTableBinder.setJpaIndex( jpaIndexes ); +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2387) } +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2388) if ( !BinderHelper.isEmptyAnnotationValue( schema ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2389) associationTableBinder.setSchema( schema ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2390) } +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2391) if ( !BinderHelper.isEmptyAnnotationValue( catalog ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2392) associationTableBinder.setCatalog( catalog ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2393) } +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2394) if ( !BinderHelper.isEmptyAnnotationValue( tableName ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2395) associationTableBinder.setName( tableName ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2396) } +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2397) associationTableBinder.setUniqueConstraints( uniqueConstraints ); +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2398) associationTableBinder.setJpaIndex( jpaIndexes ); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2399) //set check constaint in the second pass +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2400) annJoins = joins.length == 0 ? null : joins; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2401) annInverseJoins = inverseJoins == null || inverseJoins.length == 0 ? null : inverseJoins; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2402) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2403) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2404) annJoins = null; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2405) annInverseJoins = null; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2406) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2407) Ejb3JoinColumn[] joinColumns = Ejb3JoinColumn.buildJoinTableJoinColumns( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2408) annJoins, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2409) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2410) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2411) inferredData.getPropertyName(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2412) mappedBy, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2413) buildingContext +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2414) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2415) Ejb3JoinColumn[] inverseJoinColumns = Ejb3JoinColumn.buildJoinTableJoinColumns( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2416) annInverseJoins, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2417) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2418) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2419) inferredData.getPropertyName(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2420) mappedBy, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2421) buildingContext +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2422) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2423) associationTableBinder.setBuildingContext( buildingContext ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2424) collectionBinder.setTableBinder( associationTableBinder ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2425) collectionBinder.setJoinColumns( joinColumns ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2426) collectionBinder.setInverseJoinColumns( inverseJoinColumns ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2427) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2428) +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2429) private static PropertyBinder bindComponent( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2430) PropertyData inferredData, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2431) PropertyHolder propertyHolder, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2432) AccessType propertyAccessor, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2433) EntityBinder entityBinder, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2434) boolean isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2435) MetadataBuildingContext buildingContext, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2436) boolean isComponentEmbedded, +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2437) boolean isId, //is a identifier +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2438) Map inheritanceStatePerClass, +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2439) String referencedEntityName, //is a component who is overridden by a @MapsId +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2440) Ejb3JoinColumn[] columns) { +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2441) Component comp; +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2442) if ( referencedEntityName != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2443) comp = createComponent( propertyHolder, inferredData, isComponentEmbedded, isIdentifierMapper, buildingContext ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2444) SecondPass sp = new CopyIdentifierComponentSecondPass( +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2445) comp, +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2446) referencedEntityName, +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2447) columns, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2448) buildingContext +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2449) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2450) buildingContext.getMetadataCollector().addSecondPass( sp ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2451) } +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2452) else { +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2453) comp = fillComponent( +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2454) propertyHolder, inferredData, propertyAccessor, !isId, entityBinder, +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2455) isComponentEmbedded, isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2456) false, buildingContext, inheritanceStatePerClass +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2457) ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2458) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2459) if ( isId ) { +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2460) comp.setKey( true ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2461) if ( propertyHolder.getPersistentClass().getIdentifier() != null ) { +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2462) throw new AnnotationException( +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2463) comp.getComponentClassName() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2464) + " must not have @Id properties when used as an @EmbeddedId: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2465) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2466) ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2467) } +9f85525e4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 13:26:07 +0000 2468) if ( referencedEntityName == null && comp.getPropertySpan() == 0 ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2469) throw new AnnotationException( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2470) comp.getComponentClassName() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2471) + " has no persistent id property: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2472) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2473) ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2474) } +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2475) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2476) XProperty property = inferredData.getProperty(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2477) setupComponentTuplizer( property, comp ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2478) PropertyBinder binder = new PropertyBinder(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2479) binder.setName( inferredData.getPropertyName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2480) binder.setValue( comp ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2481) binder.setProperty( inferredData.getProperty() ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 2482) binder.setAccessType( inferredData.getDefaultAccess() ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2483) binder.setEmbedded( isComponentEmbedded ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2484) binder.setHolder( propertyHolder ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2485) binder.setId( isId ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2486) binder.setEntityBinder( entityBinder ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2487) binder.setInheritanceStatePerClass( inheritanceStatePerClass ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2488) binder.setBuildingContext( buildingContext ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2489) binder.makePropertyAndBind(); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2490) return binder; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2491) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2492) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2493) public static Component fillComponent( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2494) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2495) PropertyData inferredData, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2496) AccessType propertyAccessor, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2497) boolean isNullable, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2498) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2499) boolean isComponentEmbedded, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2500) boolean isIdentifierMapper, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2501) boolean inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2502) MetadataBuildingContext buildingContext, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2503) Map inheritanceStatePerClass) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2504) return fillComponent( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2505) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2506) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2507) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2508) propertyAccessor, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2509) isNullable, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2510) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2511) isComponentEmbedded, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2512) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2513) inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2514) buildingContext, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2515) inheritanceStatePerClass +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2516) ); +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2517) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 2518) +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2519) public static Component fillComponent( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2520) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2521) PropertyData inferredData, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2522) PropertyData baseInferredData, //base inferred data correspond to the entity reproducing inferredData's properties (ie IdClass) +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2523) AccessType propertyAccessor, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2524) boolean isNullable, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2525) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2526) boolean isComponentEmbedded, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2527) boolean isIdentifierMapper, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2528) boolean inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2529) MetadataBuildingContext buildingContext, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2530) Map inheritanceStatePerClass) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2531) /** +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2532) * inSecondPass can only be used to apply right away the second pass of a composite-element +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2533) * Because it's a value type, there is no bidirectional association, hence second pass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2534) * ordering does not matter +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2535) */ +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2536) Component comp = createComponent( propertyHolder, inferredData, isComponentEmbedded, isIdentifierMapper, buildingContext ); +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2537) String subpath = BinderHelper.getPath( propertyHolder, inferredData ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 2538) LOG.tracev( "Binding component with path: {0}", subpath ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2539) PropertyHolder subHolder = PropertyHolderBuilder.buildPropertyHolder( +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2540) comp, +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2541) subpath, +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2542) inferredData, +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2543) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2544) buildingContext +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2545) ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 2546) +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2547) +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2548) // propertyHolder here is the owner of the component property. Tell it we are about to start the component... +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2549) +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2550) propertyHolder.startingProperty( inferredData.getProperty() ); +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2551) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2552) final XClass xClassProcessed = inferredData.getPropertyClass(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2553) List classElements = new ArrayList(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2554) XClass returnedClassOrElement = inferredData.getClassOrElement(); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 2555) +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2556) List baseClassElements = null; +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2557) Map orderedBaseClassElements = new HashMap(); +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2558) XClass baseReturnedClassOrElement; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2559) if ( baseInferredData != null ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2560) baseClassElements = new ArrayList(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2561) baseReturnedClassOrElement = baseInferredData.getClassOrElement(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2562) bindTypeDefs( baseReturnedClassOrElement, buildingContext ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2563) PropertyContainer propContainer = new PropertyContainer( baseReturnedClassOrElement, xClassProcessed ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2564) addElementsOfClass( baseClassElements, propertyAccessor, propContainer, buildingContext ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2565) for ( PropertyData element : baseClassElements ) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2566) orderedBaseClassElements.put( element.getPropertyName(), element ); +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2567) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2568) } +8cc9e9d5f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:43:48 +0000 2569) +8cc9e9d5f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:43:48 +0000 2570) //embeddable elements can have type defs +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2571) bindTypeDefs( returnedClassOrElement, buildingContext ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2572) PropertyContainer propContainer = new PropertyContainer( returnedClassOrElement, xClassProcessed ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2573) addElementsOfClass( classElements, propertyAccessor, propContainer, buildingContext ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 2574) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2575) //add elements of the embeddable superclass +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2576) XClass superClass = xClassProcessed.getSuperclass(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2577) while ( superClass != null && superClass.isAnnotationPresent( MappedSuperclass.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2578) //FIXME: proper support of typevariables incl var resolved at upper levels +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2579) propContainer = new PropertyContainer( superClass, xClassProcessed ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2580) addElementsOfClass( classElements, propertyAccessor, propContainer, buildingContext ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2581) superClass = superClass.getSuperclass(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2582) } +c7c6981a5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-28 18:14:25 +0000 2583) if ( baseClassElements != null ) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2584) //useful to avoid breaking pre JPA 2 mappings +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2585) if ( !hasAnnotationsOnIdClass( xClassProcessed ) ) { +c7c6981a5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-28 18:14:25 +0000 2586) for ( int i = 0; i < classElements.size(); i++ ) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2587) final PropertyData idClassPropertyData = classElements.get( i ); +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2588) final PropertyData entityPropertyData = orderedBaseClassElements.get( idClassPropertyData.getPropertyName() ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2589) if ( propertyHolder.isInIdClass() ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2590) if ( entityPropertyData == null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2591) throw new AnnotationException( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2592) "Property of @IdClass not found in entity " +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2593) + baseInferredData.getPropertyClass().getName() + ": " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2594) + idClassPropertyData.getPropertyName() +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2595) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2596) } +737379690 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 19:14:29 +0000 2597) final boolean hasXToOneAnnotation = entityPropertyData.getProperty() +737379690 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 19:14:29 +0000 2598) .isAnnotationPresent( ManyToOne.class ) +737379690 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 19:14:29 +0000 2599) || entityPropertyData.getProperty().isAnnotationPresent( OneToOne.class ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2600) final boolean isOfDifferentType = !entityPropertyData.getClassOrElement() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2601) .equals( idClassPropertyData.getClassOrElement() ); +737379690 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 19:14:29 +0000 2602) if ( hasXToOneAnnotation && isOfDifferentType ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2603) //don't replace here as we need to use the actual original return type +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2604) //the annotation overriding will be dealt with by a mechanism similar to @MapsId +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2605) } +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2606) else { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2607) classElements.set( i, entityPropertyData ); //this works since they are in the same order +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2608) } +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2609) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2610) else { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2611) classElements.set( i, entityPropertyData ); //this works since they are in the same order +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2612) } +c7c6981a5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-28 18:14:25 +0000 2613) } +c7c6981a5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-28 18:14:25 +0000 2614) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2615) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2616) for ( PropertyData propertyAnnotatedElement : classElements ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2617) processElementAnnotations( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2618) subHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2619) isNullable +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2620) ? Nullability.NO_CONSTRAINT +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2621) : Nullability.FORCED_NOT_NULL, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2622) propertyAnnotatedElement, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2623) new HashMap(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2624) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2625) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2626) isComponentEmbedded, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2627) inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2628) buildingContext, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2629) inheritanceStatePerClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2630) ); +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2631) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2632) XProperty property = propertyAnnotatedElement.getProperty(); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2633) if ( property.isAnnotationPresent( GeneratedValue.class ) && +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2634) property.isAnnotationPresent( Id.class ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2635) //clone classGenerator and override with local values +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2636) Map localGenerators = new HashMap(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2637) localGenerators.putAll( buildLocalGenerators( property, buildingContext ) ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2638) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2639) GeneratedValue generatedValue = property.getAnnotation( GeneratedValue.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2640) String generatorType = generatedValue != null +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2641) ? generatorType( generatedValue.strategy(), buildingContext, property.getType() ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2642) : "assigned"; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2643) String generator = generatedValue != null ? generatedValue.generator() : BinderHelper.ANNOTATION_STRING_DEFAULT; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2644) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2645) BinderHelper.makeIdGenerator( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2646) ( SimpleValue ) comp.getProperty( property.getName() ).getValue(), +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2647) generatorType, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2648) generator, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2649) buildingContext, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2650) localGenerators +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2651) ); +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2652) } +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2653) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2654) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2655) return comp; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2656) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2657) +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2658) public static Component createComponent( +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2659) PropertyHolder propertyHolder, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2660) PropertyData inferredData, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2661) boolean isComponentEmbedded, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2662) boolean isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2663) MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2664) Component comp = new Component( context.getMetadataCollector(), propertyHolder.getPersistentClass() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2665) comp.setEmbedded( isComponentEmbedded ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2666) //yuk +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2667) comp.setTable( propertyHolder.getTable() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2668) //FIXME shouldn't identifier mapper use getClassOrElementName? Need to be checked. +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2669) if ( isIdentifierMapper || ( isComponentEmbedded && inferredData.getPropertyName() == null ) ) { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2670) comp.setComponentClassName( comp.getOwner().getClassName() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2671) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2672) else { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2673) comp.setComponentClassName( inferredData.getClassOrElementName() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2674) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2675) comp.setNodeName( inferredData.getPropertyName() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2676) return comp; +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2677) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2678) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2679) private static void bindIdClass( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2680) String generatorType, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2681) String generatorName, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2682) PropertyData inferredData, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2683) PropertyData baseInferredData, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2684) Ejb3Column[] columns, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2685) PropertyHolder propertyHolder, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2686) boolean isComposite, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2687) AccessType propertyAccessor, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2688) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2689) boolean isEmbedded, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2690) boolean isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2691) MetadataBuildingContext buildingContext, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2692) Map inheritanceStatePerClass) { +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 2693) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2694) /* +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2695) * Fill simple value and property since and Id is a property +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2696) */ +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2697) PersistentClass persistentClass = propertyHolder.getPersistentClass(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2698) if ( !( persistentClass instanceof RootClass ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2699) throw new AnnotationException( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2700) "Unable to define/override @Id(s) on a subclass: " +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2701) + propertyHolder.getEntityName() +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2702) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2703) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2704) RootClass rootClass = ( RootClass ) persistentClass; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 2705) String persistentClassName = rootClass.getClassName(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2706) SimpleValue id; +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 2707) final String propertyName = inferredData.getPropertyName(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2708) HashMap localGenerators = new HashMap(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2709) if ( isComposite ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2710) id = fillComponent( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2711) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2712) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2713) baseInferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2714) propertyAccessor, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2715) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2716) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2717) isEmbedded, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2718) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2719) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2720) buildingContext, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2721) inheritanceStatePerClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2722) ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2723) Component componentId = ( Component ) id; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2724) componentId.setKey( true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2725) if ( rootClass.getIdentifier() != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2726) throw new AnnotationException( componentId.getComponentClassName() + " must not have @Id properties when used as an @EmbeddedId" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2727) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2728) if ( componentId.getPropertySpan() == 0 ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2729) throw new AnnotationException( componentId.getComponentClassName() + " has no persistent id property" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2730) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2731) //tuplizers +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2732) XProperty property = inferredData.getProperty(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2733) setupComponentTuplizer( property, componentId ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2734) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2735) else { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2736) //TODO I think this branch is never used. Remove. +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2737) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2738) for ( Ejb3Column column : columns ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2739) column.forceNotNull(); //this is an id +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2740) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2741) SimpleValueBinder value = new SimpleValueBinder(); +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 2742) value.setPropertyName( propertyName ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2743) value.setReturnedClassName( inferredData.getTypeName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2744) value.setColumns( columns ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2745) value.setPersistentClassName( persistentClassName ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2746) value.setBuildingContext( buildingContext ); +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2747) value.setType( inferredData.getProperty(), inferredData.getClassOrElement(), persistentClassName, null ); +d0e13b664 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2012-08-07 07:08:23 +0000 2748) value.setAccessType( propertyAccessor ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2749) id = value.make(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2750) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2751) rootClass.setIdentifier( id ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2752) BinderHelper.makeIdGenerator( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2753) id, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2754) generatorType, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2755) generatorName, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2756) buildingContext, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2757) Collections.emptyMap() +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2758) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2759) if ( isEmbedded ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2760) rootClass.setEmbeddedIdentifier( inferredData.getPropertyClass() == null ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2761) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2762) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2763) PropertyBinder binder = new PropertyBinder(); +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 2764) binder.setName( propertyName ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2765) binder.setValue( id ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 2766) binder.setAccessType( inferredData.getDefaultAccess() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2767) binder.setProperty( inferredData.getProperty() ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2768) Property prop = binder.makeProperty(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2769) rootClass.setIdentifierProperty( prop ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2770) //if the id property is on a superclass, update the metamodel +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2771) final org.hibernate.mapping.MappedSuperclass superclass = BinderHelper.getMappedSuperclassOrNull( +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2772) inferredData.getDeclaringClass(), +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2773) inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2774) buildingContext +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2775) ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2776) if ( superclass != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2777) superclass.setDeclaredIdentifierProperty( prop ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2778) } +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2779) else { +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2780) //we know the property is on the actual entity +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2781) rootClass.setDeclaredIdentifierProperty( prop ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2782) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2783) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2784) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2785) +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2786) private static PropertyData getUniqueIdPropertyFromBaseClass( +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2787) PropertyData inferredData, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2788) PropertyData baseInferredData, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2789) AccessType propertyAccessor, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2790) MetadataBuildingContext context) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2791) List baseClassElements = new ArrayList(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2792) XClass baseReturnedClassOrElement = baseInferredData.getClassOrElement(); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2793) PropertyContainer propContainer = new PropertyContainer( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2794) baseReturnedClassOrElement, inferredData.getPropertyClass() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2795) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2796) addElementsOfClass( baseClassElements, propertyAccessor, propContainer, context ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2797) //Id properties are on top and there is only one +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2798) return baseClassElements.get( 0 ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2799) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2800) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2801) private static void setupComponentTuplizer(XProperty property, Component component) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2802) if ( property == null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2803) return; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2804) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2805) if ( property.isAnnotationPresent( Tuplizers.class ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2806) for ( Tuplizer tuplizer : property.getAnnotation( Tuplizers.class ).value() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2807) EntityMode mode = EntityMode.parse( tuplizer.entityMode() ); +72aedc868 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2011-06-06 16:16:33 +0000 2808) //todo tuplizer.entityModeType +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2809) component.addTuplizer( mode, tuplizer.impl().getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2810) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2811) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2812) if ( property.isAnnotationPresent( Tuplizer.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2813) Tuplizer tuplizer = property.getAnnotation( Tuplizer.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2814) EntityMode mode = EntityMode.parse( tuplizer.entityMode() ); +72aedc868 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2011-06-06 16:16:33 +0000 2815) //todo tuplizer.entityModeType +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2816) component.addTuplizer( mode, tuplizer.impl().getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2817) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2818) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2819) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2820) private static void bindManyToOne( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2821) String cascadeStrategy, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2822) Ejb3JoinColumn[] columns, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2823) boolean optional, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2824) boolean ignoreNotFound, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2825) boolean cascadeOnDelete, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2826) XClass targetEntity, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2827) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2828) PropertyData inferredData, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2829) boolean unique, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2830) boolean isIdentifierMapper, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2831) boolean inSecondPass, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2832) PropertyBinder propertyBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2833) MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2834) //All FK columns should be in the same table +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2835) org.hibernate.mapping.ManyToOne value = new org.hibernate.mapping.ManyToOne( context.getMetadataCollector(), columns[0].getTable() ); +63d5a9785 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2010-01-19 15:43:00 +0000 2836) // This is a @OneToOne mapped to a physical o.h.mapping.ManyToOne +63d5a9785 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2010-01-19 15:43:00 +0000 2837) if ( unique ) { +63d5a9785 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2010-01-19 15:43:00 +0000 2838) value.markAsLogicalOneToOne(); +63d5a9785 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2010-01-19 15:43:00 +0000 2839) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2840) value.setReferencedEntityName( ToOneBinder.getReferenceEntityName( inferredData, targetEntity, context ) ); +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2841) final XProperty property = inferredData.getProperty(); +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2842) defineFetchingStrategy( value, property ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2843) //value.setFetchMode( fetchMode ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2844) value.setIgnoreNotFound( ignoreNotFound ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2845) value.setCascadeDeleteEnabled( cascadeOnDelete ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2846) //value.setLazy( fetchMode != FetchMode.JOIN ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2847) if ( !optional ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2848) for ( Ejb3JoinColumn column : columns ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2849) column.setNullable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2850) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2851) } +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2852) if ( property.isAnnotationPresent( MapsId.class ) ) { +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2853) //read only +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2854) for ( Ejb3JoinColumn column : columns ) { +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2855) column.setInsertable( false ); +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2856) column.setUpdatable( false ); +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2857) } +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2858) } +1811b48f7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-12-09 20:14:56 +0000 2859) +1811b48f7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-12-09 20:14:56 +0000 2860) final JoinColumn joinColumn = property.getAnnotation( JoinColumn.class ); +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2861) +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2862) //Make sure that JPA1 key-many-to-one columns are read only tooj +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2863) boolean hasSpecjManyToOne=false; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2864) if ( context.getBuildingOptions().isSpecjProprietarySyntaxEnabled() ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2865) String columnName = ""; +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2866) for ( XProperty prop : inferredData.getDeclaringClass() +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2867) .getDeclaredProperties( AccessType.FIELD.getType() ) ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2868) if ( prop.isAnnotationPresent( Id.class ) && prop.isAnnotationPresent( Column.class ) ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2869) columnName = prop.getAnnotation( Column.class ).name(); +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2870) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2871) +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2872) if ( property.isAnnotationPresent( ManyToOne.class ) && joinColumn != null +59ec34d5b core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 14:05:41 +0000 2873) && ! BinderHelper.isEmptyAnnotationValue( joinColumn.name() ) +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2874) && joinColumn.name().equals( columnName ) +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2875) && !property.isAnnotationPresent( MapsId.class ) ) { +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2876) hasSpecjManyToOne = true; +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2877) for ( Ejb3JoinColumn column : columns ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2878) column.setInsertable( false ); +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2879) column.setUpdatable( false ); +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2880) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2881) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2882) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2883) +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2884) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2885) value.setTypeName( inferredData.getClassOrElementName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2886) final String propertyName = inferredData.getPropertyName(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2887) value.setTypeUsingReflection( propertyHolder.getClassName(), propertyName ); +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2888) +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2889) if ( joinColumn != null +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2890) && joinColumn.foreignKey().value() == ConstraintMode.NO_CONSTRAINT ) { +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2891) // not ideal... +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2892) value.setForeignKeyName( "none" ); +1811b48f7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-12-09 20:14:56 +0000 2893) } +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2894) else { +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2895) final ForeignKey fk = property.getAnnotation( ForeignKey.class ); +b7273d93a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:14:40 +0000 2896) if ( fk != null && StringHelper.isNotEmpty( fk.name() ) ) { +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2897) value.setForeignKeyName( fk.name() ); +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2898) } +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2899) else if ( joinColumn != null ) { +b7273d93a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:14:40 +0000 2900) value.setForeignKeyName( StringHelper.nullIfEmpty( joinColumn.foreignKey().name() ) ); +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2901) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2902) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2903) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2904) String path = propertyHolder.getPath() + "." + propertyName; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2905) FkSecondPass secondPass = new ToOneFkSecondPass( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2906) value, columns, +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 2907) !optional && unique, //cannot have nullable and unique on certain DBs like Derby +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2908) propertyHolder.getEntityOwnerClassName(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2909) path, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2910) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2911) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2912) if ( inSecondPass ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2913) secondPass.doSecondPass( context.getMetadataCollector().getEntityBindingMap() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2914) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2915) else { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2916) context.getMetadataCollector().addSecondPass( secondPass ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2917) } +32b93b978 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-10-31 09:22:05 +0000 2918) Ejb3Column.checkPropertyConsistency( columns, propertyHolder.getEntityName() + "." + propertyName ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2919) //PropertyBinder binder = new PropertyBinder(); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2920) propertyBinder.setName( propertyName ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2921) propertyBinder.setValue( value ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2922) //binder.setCascade(cascadeStrategy); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2923) if ( isIdentifierMapper ) { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2924) propertyBinder.setInsertable( false ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2925) propertyBinder.setUpdatable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2926) } +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2927) else if (hasSpecjManyToOne) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 2928) propertyBinder.setInsertable( false ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 2929) propertyBinder.setUpdatable( false ); +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2930) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2931) else { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2932) propertyBinder.setInsertable( columns[0].isInsertable() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2933) propertyBinder.setUpdatable( columns[0].isUpdatable() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2934) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2935) propertyBinder.setColumns( columns ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2936) propertyBinder.setAccessType( inferredData.getDefaultAccess() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2937) propertyBinder.setCascade( cascadeStrategy ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2938) propertyBinder.setProperty( property ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2939) propertyBinder.setXToMany( true ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2940) propertyBinder.makePropertyAndBind(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2941) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2942) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2943) protected static void defineFetchingStrategy(ToOne toOne, XProperty property) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2944) LazyToOne lazy = property.getAnnotation( LazyToOne.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2945) Fetch fetch = property.getAnnotation( Fetch.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2946) ManyToOne manyToOne = property.getAnnotation( ManyToOne.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2947) OneToOne oneToOne = property.getAnnotation( OneToOne.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2948) FetchType fetchType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2949) if ( manyToOne != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2950) fetchType = manyToOne.fetch(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2951) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2952) else if ( oneToOne != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2953) fetchType = oneToOne.fetch(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2954) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2955) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2956) throw new AssertionFailure( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2957) "Define fetch strategy on a property not annotated with @OneToMany nor @OneToOne" +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2958) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2959) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2960) if ( lazy != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2961) toOne.setLazy( !( lazy.value() == LazyToOneOption.FALSE ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2962) toOne.setUnwrapProxy( ( lazy.value() == LazyToOneOption.NO_PROXY ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2963) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2964) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2965) toOne.setLazy( fetchType == FetchType.LAZY ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2966) toOne.setUnwrapProxy( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2967) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2968) if ( fetch != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2969) if ( fetch.value() == org.hibernate.annotations.FetchMode.JOIN ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2970) toOne.setFetchMode( FetchMode.JOIN ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2971) toOne.setLazy( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2972) toOne.setUnwrapProxy( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2973) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2974) else if ( fetch.value() == org.hibernate.annotations.FetchMode.SELECT ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2975) toOne.setFetchMode( FetchMode.SELECT ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2976) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2977) else if ( fetch.value() == org.hibernate.annotations.FetchMode.SUBSELECT ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2978) throw new AnnotationException( "Use of FetchMode.SUBSELECT not allowed on ToOne associations" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2979) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2980) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2981) throw new AssertionFailure( "Unknown FetchMode: " + fetch.value() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2982) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2983) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2984) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2985) toOne.setFetchMode( getFetchMode( fetchType ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2986) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2987) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2988) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2989) private static void bindOneToOne( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2990) String cascadeStrategy, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2991) Ejb3JoinColumn[] joinColumns, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2992) boolean optional, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2993) FetchMode fetchMode, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2994) boolean ignoreNotFound, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2995) boolean cascadeOnDelete, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2996) XClass targetEntity, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2997) PropertyHolder propertyHolder, +e26b8be6a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-06-01 16:59:42 +0000 2998) PropertyData inferredData, +e26b8be6a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-06-01 16:59:42 +0000 2999) String mappedBy, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3000) boolean trueOneToOne, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 3001) boolean isIdentifierMapper, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 3002) boolean inSecondPass, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 3003) PropertyBinder propertyBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3004) MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3005) //column.getTable() => persistentClass.getTable() +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3006) final String propertyName = inferredData.getPropertyName(); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 3007) LOG.tracev( "Fetching {0} with {1}", propertyName, fetchMode ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3008) boolean mapToPK = true; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3009) if ( !trueOneToOne ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3010) //try to find a hidden true one to one (FK == PK columns) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3011) KeyValue identifier = propertyHolder.getIdentifier(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3012) if ( identifier == null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3013) //this is a @OneToOne in a @EmbeddedId (the persistentClass.identifier is not set yet, it's being built) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3014) //by definition the PK cannot refers to itself so it cannot map to itself +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3015) mapToPK = false; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3016) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3017) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3018) Iterator idColumns = identifier.getColumnIterator(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3019) List idColumnNames = new ArrayList(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3020) org.hibernate.mapping.Column currentColumn; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3021) if ( identifier.getColumnSpan() != joinColumns.length ) { +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3022) mapToPK = false; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3023) } +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3024) else { +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3025) while ( idColumns.hasNext() ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3026) currentColumn = ( org.hibernate.mapping.Column ) idColumns.next(); +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3027) idColumnNames.add( currentColumn.getName() ); +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3028) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3029) for ( Ejb3JoinColumn col : joinColumns ) { +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3030) if ( !idColumnNames.contains( col.getMappingColumn().getName() ) ) { +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3031) mapToPK = false; +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3032) break; +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3033) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3034) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3035) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3036) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3037) } +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 3038) if ( trueOneToOne || mapToPK || !BinderHelper.isEmptyAnnotationValue( mappedBy ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3039) //is a true one-to-one +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3040) //FIXME referencedColumnName ignored => ordering may fail. +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3041) OneToOneSecondPass secondPass = new OneToOneSecondPass( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3042) mappedBy, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3043) propertyHolder.getEntityName(), +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3044) propertyName, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3045) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3046) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3047) targetEntity, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3048) ignoreNotFound, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3049) cascadeOnDelete, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3050) optional, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3051) cascadeStrategy, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3052) joinColumns, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3053) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3054) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3055) if ( inSecondPass ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3056) secondPass.doSecondPass( context.getMetadataCollector().getEntityBindingMap() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3057) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3058) else { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3059) context.getMetadataCollector().addSecondPass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3060) secondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3061) BinderHelper.isEmptyAnnotationValue( mappedBy ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3062) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3063) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3064) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3065) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3066) //has a FK on the table +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3067) bindManyToOne( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3068) cascadeStrategy, joinColumns, optional, ignoreNotFound, cascadeOnDelete, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3069) targetEntity, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 3070) propertyHolder, inferredData, true, isIdentifierMapper, inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3071) propertyBinder, context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3072) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3073) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3074) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3075) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3076) private static void bindAny( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3077) String cascadeStrategy, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3078) Ejb3JoinColumn[] columns, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3079) boolean cascadeOnDelete, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3080) Nullability nullability, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3081) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3082) PropertyData inferredData, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3083) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3084) boolean isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3085) MetadataBuildingContext buildingContext) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3086) org.hibernate.annotations.Any anyAnn = inferredData.getProperty() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3087) .getAnnotation( org.hibernate.annotations.Any.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3088) if ( anyAnn == null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3089) throw new AssertionFailure( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3090) "Missing @Any annotation: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3091) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3092) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3093) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3094) Any value = BinderHelper.buildAnyValue( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3095) anyAnn.metaDef(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3096) columns, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3097) anyAnn.metaColumn(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3098) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3099) cascadeOnDelete, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3100) nullability, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3101) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3102) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3103) anyAnn.optional(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3104) buildingContext +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3105) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3106) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3107) PropertyBinder binder = new PropertyBinder(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3108) binder.setName( inferredData.getPropertyName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3109) binder.setValue( value ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3110) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3111) binder.setLazy( anyAnn.fetch() == FetchType.LAZY ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3112) //binder.setCascade(cascadeStrategy); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3113) if ( isIdentifierMapper ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3114) binder.setInsertable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3115) binder.setUpdatable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3116) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3117) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3118) binder.setInsertable( columns[0].isInsertable() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3119) binder.setUpdatable( columns[0].isUpdatable() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3120) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 3121) binder.setAccessType( inferredData.getDefaultAccess() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3122) binder.setCascade( cascadeStrategy ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 3123) Property prop = binder.makeProperty(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3124) //composite FK columns are in the same table so its OK +c7c6981a5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-28 18:14:25 +0000 3125) propertyHolder.addProperty( prop, columns, inferredData.getDeclaringClass() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3126) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3127) +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 3128) private static String generatorType( +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 3129) GenerationType generatorEnum, +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3130) final MetadataBuildingContext buildingContext, +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3131) final XClass javaTypeXClass) { +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3132) return buildingContext.getBuildingOptions().getIdGenerationTypeInterpreter().determineGeneratorName( +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3133) generatorEnum, +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 3134) new IdGeneratorStrategyInterpreter.GeneratorNameDeterminationContext() { +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3135) Class javaType = null; +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3136) @Override +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3137) public Class getIdType() { +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3138) if ( javaType == null ) { +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3139) javaType = buildingContext.getBuildingOptions() +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3140) .getReflectionManager() +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3141) .toClass( javaTypeXClass ); +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3142) } +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3143) return javaType; +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3144) } +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 3145) } +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3146) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3147) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3148) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3149) private static EnumSet convertToHibernateCascadeType(javax.persistence.CascadeType[] ejbCascades) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3150) EnumSet hibernateCascadeSet = EnumSet.noneOf( CascadeType.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3151) if ( ejbCascades != null && ejbCascades.length > 0 ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3152) for ( javax.persistence.CascadeType cascade : ejbCascades ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3153) switch ( cascade ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3154) case ALL: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3155) hibernateCascadeSet.add( CascadeType.ALL ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3156) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3157) case PERSIST: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3158) hibernateCascadeSet.add( CascadeType.PERSIST ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3159) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3160) case MERGE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3161) hibernateCascadeSet.add( CascadeType.MERGE ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3162) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3163) case REMOVE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3164) hibernateCascadeSet.add( CascadeType.REMOVE ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3165) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3166) case REFRESH: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3167) hibernateCascadeSet.add( CascadeType.REFRESH ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3168) break; +ba3639a25 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-12-10 09:32:25 +0000 3169) case DETACH: +ba3639a25 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-12-10 09:32:25 +0000 3170) hibernateCascadeSet.add( CascadeType.DETACH ); +ba3639a25 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-12-10 09:32:25 +0000 3171) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3172) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3173) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3174) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3175) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3176) return hibernateCascadeSet; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3177) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3178) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3179) private static String getCascadeStrategy( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3180) javax.persistence.CascadeType[] ejbCascades, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3181) Cascade hibernateCascadeAnnotation, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3182) boolean orphanRemoval, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3183) boolean forcePersist) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3184) EnumSet hibernateCascadeSet = convertToHibernateCascadeType( ejbCascades ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3185) CascadeType[] hibernateCascades = hibernateCascadeAnnotation == null ? +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3186) null : +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3187) hibernateCascadeAnnotation.value(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3188) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3189) if ( hibernateCascades != null && hibernateCascades.length > 0 ) { +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 3190) hibernateCascadeSet.addAll( Arrays.asList( hibernateCascades ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3191) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3192) +165f2e5f7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2009-12-22 18:07:38 +0000 3193) if ( orphanRemoval ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3194) hibernateCascadeSet.add( CascadeType.DELETE_ORPHAN ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3195) hibernateCascadeSet.add( CascadeType.REMOVE ); +165f2e5f7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2009-12-22 18:07:38 +0000 3196) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3197) if ( forcePersist ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3198) hibernateCascadeSet.add( CascadeType.PERSIST ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 3199) } +165f2e5f7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2009-12-22 18:07:38 +0000 3200) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3201) StringBuilder cascade = new StringBuilder(); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 3202) for ( CascadeType aHibernateCascadeSet : hibernateCascadeSet ) { +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 3203) switch ( aHibernateCascadeSet ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3204) case ALL: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3205) cascade.append( "," ).append( "all" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3206) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3207) case SAVE_UPDATE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3208) cascade.append( "," ).append( "save-update" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3209) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3210) case PERSIST: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3211) cascade.append( "," ).append( "persist" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3212) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3213) case MERGE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3214) cascade.append( "," ).append( "merge" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3215) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3216) case LOCK: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3217) cascade.append( "," ).append( "lock" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3218) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3219) case REFRESH: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3220) cascade.append( "," ).append( "refresh" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3221) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3222) case REPLICATE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3223) cascade.append( "," ).append( "replicate" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3224) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3225) case EVICT: +ba3639a25 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-12-10 09:32:25 +0000 3226) case DETACH: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3227) cascade.append( "," ).append( "evict" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3228) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3229) case DELETE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3230) cascade.append( "," ).append( "delete" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3231) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3232) case DELETE_ORPHAN: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3233) cascade.append( "," ).append( "delete-orphan" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3234) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3235) case REMOVE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3236) cascade.append( "," ).append( "delete" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3237) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3238) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3239) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3240) return cascade.length() > 0 ? +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3241) cascade.substring( 1 ) : +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3242) "none"; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3243) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3244) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3245) public static FetchMode getFetchMode(FetchType fetch) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3246) if ( fetch == FetchType.EAGER ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3247) return FetchMode.JOIN; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3248) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3249) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3250) return FetchMode.SELECT; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3251) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3252) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3253) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3254) private static HashMap buildLocalGenerators(XAnnotatedElement annElt, MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3255) HashMap generators = new HashMap(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3256) TableGenerator tabGen = annElt.getAnnotation( TableGenerator.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3257) SequenceGenerator seqGen = annElt.getAnnotation( SequenceGenerator.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3258) GenericGenerator genGen = annElt.getAnnotation( GenericGenerator.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3259) if ( tabGen != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3260) IdentifierGeneratorDefinition idGen = buildIdGenerator( tabGen, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3261) generators.put( idGen.getName(), idGen ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3262) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3263) if ( seqGen != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3264) IdentifierGeneratorDefinition idGen = buildIdGenerator( seqGen, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3265) generators.put( idGen.getName(), idGen ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3266) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3267) if ( genGen != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3268) IdentifierGeneratorDefinition idGen = buildIdGenerator( genGen, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3269) generators.put( idGen.getName(), idGen ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3270) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3271) return generators; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3272) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3273) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3274) public static boolean isDefault(XClass clazz, MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3275) return context.getBuildingOptions().getReflectionManager().equals( clazz, void.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3276) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3277) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3278) /** +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3279) * For the mapped entities build some temporary data-structure containing information about the +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3280) * inheritance status of a class. +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3281) * +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3282) * @param orderedClasses Order list of all annotated entities and their mapped superclasses +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3283) * +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3284) * @return A map of {@code InheritanceState}s keyed against their {@code XClass}. +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3285) */ +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 3286) public static Map buildInheritanceStates( +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 3287) List orderedClasses, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3288) MetadataBuildingContext buildingContext) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3289) ReflectionManager reflectionManager = buildingContext.getBuildingOptions().getReflectionManager(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3290) Map inheritanceStatePerClass = new HashMap( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3291) orderedClasses.size() +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3292) ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3293) for ( XClass clazz : orderedClasses ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3294) InheritanceState superclassState = InheritanceState.getSuperclassInheritanceState( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3295) clazz, inheritanceStatePerClass +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3296) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3297) InheritanceState state = new InheritanceState( clazz, inheritanceStatePerClass, buildingContext ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3298) if ( superclassState != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3299) //the classes are ordered thus preventing an NPE +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3300) //FIXME if an entity has subclasses annotated @MappedSperclass wo sub @Entity this is wrong +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3301) superclassState.setHasSiblings( true ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3302) InheritanceState superEntityState = InheritanceState.getInheritanceStateOfSuperEntity( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3303) clazz, inheritanceStatePerClass +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3304) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3305) state.setHasParents( superEntityState != null ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3306) final boolean nonDefault = state.getType() != null && !InheritanceType.SINGLE_TABLE +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3307) .equals( state.getType() ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3308) if ( superclassState.getType() != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3309) final boolean mixingStrategy = state.getType() != null && !state.getType() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3310) .equals( superclassState.getType() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 3311) if ( nonDefault && mixingStrategy ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 3312) LOG.invalidSubStrategy( clazz.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 3313) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3314) state.setType( superclassState.getType() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3315) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3316) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3317) inheritanceStatePerClass.put( clazz, state ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3318) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3319) return inheritanceStatePerClass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3320) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3321) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3322) private static boolean hasAnnotationsOnIdClass(XClass idClass) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 3323) // if(idClass.getAnnotation(Embeddable.class) != null) +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 3324) // return true; +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3325) +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3326) List properties = idClass.getDeclaredProperties( XClass.ACCESS_FIELD ); +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3327) for ( XProperty property : properties ) { +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3328) if ( property.isAnnotationPresent( Column.class ) || property.isAnnotationPresent( OneToMany.class ) || +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3329) property.isAnnotationPresent( ManyToOne.class ) || property.isAnnotationPresent( Id.class ) || +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3330) property.isAnnotationPresent( GeneratedValue.class ) || property.isAnnotationPresent( OneToOne.class ) || +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3331) property.isAnnotationPresent( ManyToMany.class ) +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3332) ) { +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3333) return true; +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3334) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3335) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3336) List methods = idClass.getDeclaredMethods(); +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3337) for ( XMethod method : methods ) { +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3338) if ( method.isAnnotationPresent( Column.class ) || method.isAnnotationPresent( OneToMany.class ) || +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3339) method.isAnnotationPresent( ManyToOne.class ) || method.isAnnotationPresent( Id.class ) || +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3340) method.isAnnotationPresent( GeneratedValue.class ) || method.isAnnotationPresent( OneToOne.class ) || +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3341) method.isAnnotationPresent( ManyToMany.class ) +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3342) ) { +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3343) return true; +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3344) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3345) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3346) return false; +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3347) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3348) } diff --git a/src/test/resources/blame/gitcli/9e063ffa2_cgit_iw.txt b/src/test/resources/blame/gitcli/9e063ffa2_cgit_iw.txt new file mode 100644 index 00000000000..e6d035c9f09 --- /dev/null +++ b/src/test/resources/blame/gitcli/9e063ffa2_cgit_iw.txt @@ -0,0 +1,3348 @@ +513c71de5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 21:41:58 +0000 1) /* +513c71de5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 21:41:58 +0000 2) * Hibernate, Relational Persistence for Idiomatic Java +513c71de5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 21:41:58 +0000 3) * +bd256e478 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-05-19 04:23:35 +0000 4) * License: GNU Lesser General Public License (LGPL), version 2.1 or later. +bd256e478 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-05-19 04:23:35 +0000 5) * See the lgpl.txt file in the root directory or . +513c71de5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 21:41:58 +0000 6) */ +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 7) package org.hibernate.cfg; +d3b640cb7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2012-03-26 08:17:45 +0000 8) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 9) import java.lang.annotation.Annotation; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 10) import java.util.ArrayList; +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 11) import java.util.Arrays; +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 12) import java.util.Collection; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 13) import java.util.Collections; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 14) import java.util.EnumSet; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 15) import java.util.HashMap; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 16) import java.util.HashSet; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 17) import java.util.Iterator; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 18) import java.util.List; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 19) import java.util.Map; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 20) import java.util.Properties; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 21) import java.util.Set; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 22) import javax.persistence.Basic; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 23) import javax.persistence.Cacheable; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 24) import javax.persistence.CollectionTable; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 25) import javax.persistence.Column; +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 26) import javax.persistence.ConstraintMode; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 27) import javax.persistence.DiscriminatorColumn; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 28) import javax.persistence.DiscriminatorType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 29) import javax.persistence.DiscriminatorValue; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 30) import javax.persistence.ElementCollection; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 31) import javax.persistence.Embeddable; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 32) import javax.persistence.Embedded; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 33) import javax.persistence.EmbeddedId; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 34) import javax.persistence.Entity; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 35) import javax.persistence.FetchType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 36) import javax.persistence.GeneratedValue; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 37) import javax.persistence.GenerationType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 38) import javax.persistence.Id; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 39) import javax.persistence.IdClass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 40) import javax.persistence.InheritanceType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 41) import javax.persistence.JoinColumn; +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 42) import javax.persistence.JoinColumns; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 43) import javax.persistence.JoinTable; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 44) import javax.persistence.ManyToMany; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 45) import javax.persistence.ManyToOne; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 46) import javax.persistence.MapKey; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 47) import javax.persistence.MapKeyColumn; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 48) import javax.persistence.MapKeyJoinColumn; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 49) import javax.persistence.MapKeyJoinColumns; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 50) import javax.persistence.MappedSuperclass; +6588ede3a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-19 18:57:19 +0000 51) import javax.persistence.MapsId; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 52) import javax.persistence.NamedNativeQueries; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 53) import javax.persistence.NamedNativeQuery; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 54) import javax.persistence.NamedQueries; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 55) import javax.persistence.NamedQuery; +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 56) import javax.persistence.NamedStoredProcedureQueries; +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 57) import javax.persistence.NamedStoredProcedureQuery; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 58) import javax.persistence.OneToMany; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 59) import javax.persistence.OneToOne; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 60) import javax.persistence.OrderColumn; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 61) import javax.persistence.PrimaryKeyJoinColumn; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 62) import javax.persistence.PrimaryKeyJoinColumns; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 63) import javax.persistence.SequenceGenerator; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 64) import javax.persistence.SharedCacheMode; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 65) import javax.persistence.SqlResultSetMapping; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 66) import javax.persistence.SqlResultSetMappings; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 67) import javax.persistence.Table; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 68) import javax.persistence.TableGenerator; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 69) import javax.persistence.UniqueConstraint; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 70) import javax.persistence.Version; +bdba5898c hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2011-10-24 08:26:37 +0000 71) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 72) import org.hibernate.AnnotationException; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 73) import org.hibernate.AssertionFailure; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 74) import org.hibernate.EntityMode; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 75) import org.hibernate.FetchMode; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 76) import org.hibernate.MappingException; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 77) import org.hibernate.annotations.BatchSize; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 78) import org.hibernate.annotations.Cache; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 79) import org.hibernate.annotations.CacheConcurrencyStrategy; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 80) import org.hibernate.annotations.Cascade; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 81) import org.hibernate.annotations.CascadeType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 82) import org.hibernate.annotations.Check; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 83) import org.hibernate.annotations.CollectionId; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 84) import org.hibernate.annotations.Columns; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 85) import org.hibernate.annotations.DiscriminatorFormula; +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 86) import org.hibernate.annotations.DiscriminatorOptions; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 87) import org.hibernate.annotations.Fetch; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 88) import org.hibernate.annotations.FetchProfile; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 89) import org.hibernate.annotations.FetchProfiles; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 90) import org.hibernate.annotations.Filter; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 91) import org.hibernate.annotations.FilterDef; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 92) import org.hibernate.annotations.FilterDefs; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 93) import org.hibernate.annotations.Filters; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 94) import org.hibernate.annotations.ForeignKey; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 95) import org.hibernate.annotations.Formula; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 96) import org.hibernate.annotations.GenericGenerator; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 97) import org.hibernate.annotations.GenericGenerators; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 98) import org.hibernate.annotations.Index; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 99) import org.hibernate.annotations.LazyToOne; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 100) import org.hibernate.annotations.LazyToOneOption; +54bc9fbf9 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 17:26:33 +0000 101) import org.hibernate.annotations.ListIndexBase; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 102) import org.hibernate.annotations.ManyToAny; +232a77e5d core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-26 21:00:47 +0000 103) import org.hibernate.annotations.MapKeyType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 104) import org.hibernate.annotations.NaturalId; +c47352058 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Eric Dalquist 2012-01-27 22:46:25 +0000 105) import org.hibernate.annotations.NaturalIdCache; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 106) import org.hibernate.annotations.NotFound; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 107) import org.hibernate.annotations.NotFoundAction; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 108) import org.hibernate.annotations.OnDelete; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 109) import org.hibernate.annotations.OnDeleteAction; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 110) import org.hibernate.annotations.OrderBy; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 111) import org.hibernate.annotations.ParamDef; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 112) import org.hibernate.annotations.Parameter; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 113) import org.hibernate.annotations.Parent; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 114) import org.hibernate.annotations.Proxy; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 115) import org.hibernate.annotations.Sort; +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 116) import org.hibernate.annotations.SortComparator; +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 117) import org.hibernate.annotations.SortNatural; +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 118) import org.hibernate.annotations.Source; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 119) import org.hibernate.annotations.Tuplizer; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 120) import org.hibernate.annotations.Tuplizers; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 121) import org.hibernate.annotations.TypeDef; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 122) import org.hibernate.annotations.TypeDefs; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 123) import org.hibernate.annotations.Where; +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 124) import org.hibernate.annotations.common.reflection.ClassLoadingException; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 125) import org.hibernate.annotations.common.reflection.ReflectionManager; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 126) import org.hibernate.annotations.common.reflection.XAnnotatedElement; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 127) import org.hibernate.annotations.common.reflection.XClass; +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 128) import org.hibernate.annotations.common.reflection.XMethod; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 129) import org.hibernate.annotations.common.reflection.XPackage; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 130) import org.hibernate.annotations.common.reflection.XProperty; +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 131) import org.hibernate.boot.model.IdGeneratorStrategyInterpreter; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 132) import org.hibernate.boot.model.IdentifierGeneratorDefinition; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 133) import org.hibernate.boot.model.TypeDefinition; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 134) import org.hibernate.boot.spi.InFlightMetadataCollector.EntityTableXref; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 135) import org.hibernate.boot.spi.MetadataBuildingContext; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 136) import org.hibernate.cfg.annotations.CollectionBinder; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 137) import org.hibernate.cfg.annotations.EntityBinder; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 138) import org.hibernate.cfg.annotations.MapKeyColumnDelegator; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 139) import org.hibernate.cfg.annotations.MapKeyJoinColumnDelegator; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 140) import org.hibernate.cfg.annotations.Nullability; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 141) import org.hibernate.cfg.annotations.PropertyBinder; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 142) import org.hibernate.cfg.annotations.QueryBinder; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 143) import org.hibernate.cfg.annotations.SimpleValueBinder; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 144) import org.hibernate.cfg.annotations.TableBinder; +b51164aef hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-26 23:50:39 +0000 145) import org.hibernate.engine.OptimisticLockStyle; +fb44ad936 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2011-05-04 22:15:40 +0000 146) import org.hibernate.engine.spi.FilterDefinition; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 147) import org.hibernate.id.PersistentIdentifierGenerator; +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 148) import org.hibernate.internal.CoreLogging; +bdba5898c hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2011-10-24 08:26:37 +0000 149) import org.hibernate.internal.CoreMessageLogger; +1811b48f7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-12-09 20:14:56 +0000 150) import org.hibernate.internal.util.StringHelper; +803c73c55 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-08-28 20:07:18 +0000 151) import org.hibernate.loader.PropertyPath; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 152) import org.hibernate.mapping.Any; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 153) import org.hibernate.mapping.Component; +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 154) import org.hibernate.mapping.Constraint; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 155) import org.hibernate.mapping.DependantValue; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 156) import org.hibernate.mapping.IdGenerator; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 157) import org.hibernate.mapping.Join; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 158) import org.hibernate.mapping.JoinedSubclass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 159) import org.hibernate.mapping.KeyValue; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 160) import org.hibernate.mapping.PersistentClass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 161) import org.hibernate.mapping.Property; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 162) import org.hibernate.mapping.RootClass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 163) import org.hibernate.mapping.SimpleValue; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 164) import org.hibernate.mapping.SingleTableSubclass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 165) import org.hibernate.mapping.Subclass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 166) import org.hibernate.mapping.ToOne; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 167) import org.hibernate.mapping.UnionSubclass; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 168) +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 169) import static org.hibernate.internal.CoreLogging.messageLogger; +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 170) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 171) /** +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 172) * JSR 175 annotation binder which reads the annotations from classes, applies the +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 173) * principles of the EJB3 spec and produces the Hibernate configuration-time metamodel +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 174) * (the classes in the {@code org.hibernate.mapping} package) +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 175) *

+7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 176) * Some design description +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 177) * I tried to remove any link to annotation except from the 2 first level of +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 178) * method call. +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 179) * It'll enable to: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 180) * - facilitate annotation overriding +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 181) * - mutualize one day xml and annotation binder (probably a dream though) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 182) * - split this huge class in smaller mapping oriented classes +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 183) * +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 184) * bindSomething usually create the mapping container and is accessed by one of the 2 first level method +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 185) * makeSomething usually create the mapping container and is accessed by bindSomething[else] +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 186) * fillSomething take the container into parameter and fill it. +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 187) * +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 188) * @author Emmanuel Bernard +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 189) * @author Hardy Ferentschik +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 190) */ +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 191) @SuppressWarnings("unchecked") +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 192) public final class AnnotationBinder { +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 193) private static final CoreMessageLogger LOG = messageLogger( AnnotationBinder.class ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 194) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 195) private AnnotationBinder() { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 196) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 197) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 198) public static void bindDefaults(MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 199) Map defaults = context.getBuildingOptions().getReflectionManager().getDefaults(); +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 200) +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 201) // id generators ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 202) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 203) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 204) List anns = ( List ) defaults.get( SequenceGenerator.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 205) if ( anns != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 206) for ( SequenceGenerator ann : anns ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 207) IdentifierGeneratorDefinition idGen = buildIdGenerator( ann, context ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 208) if ( idGen != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 209) context.getMetadataCollector().addDefaultIdentifierGenerator( idGen ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 210) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 211) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 212) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 213) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 214) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 215) List anns = ( List ) defaults.get( TableGenerator.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 216) if ( anns != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 217) for ( TableGenerator ann : anns ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 218) IdentifierGeneratorDefinition idGen = buildIdGenerator( ann, context ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 219) if ( idGen != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 220) context.getMetadataCollector().addDefaultIdentifierGenerator( idGen ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 221) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 222) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 223) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 224) } +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 225) +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 226) // queries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 227) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 228) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 229) List anns = ( List ) defaults.get( NamedQuery.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 230) if ( anns != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 231) for ( NamedQuery ann : anns ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 232) QueryBinder.bindQuery( ann, context, true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 233) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 234) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 235) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 236) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 237) List anns = ( List ) defaults.get( NamedNativeQuery.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 238) if ( anns != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 239) for ( NamedNativeQuery ann : anns ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 240) QueryBinder.bindNativeQuery( ann, context, true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 241) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 242) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 243) } +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 244) +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 245) // result-set-mappings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 246) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 247) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 248) List anns = ( List ) defaults.get( SqlResultSetMapping.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 249) if ( anns != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 250) for ( SqlResultSetMapping ann : anns ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 251) QueryBinder.bindSqlResultSetMapping( ann, context, true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 252) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 253) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 254) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 255) +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 256) // stored procs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +14993a463 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-17 17:49:47 +0000 257) +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 258) { +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 259) final List annotations = +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 260) (List) defaults.get( NamedStoredProcedureQuery.class ); +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 261) if ( annotations != null ) { +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 262) for ( NamedStoredProcedureQuery annotation : annotations ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 263) bindNamedStoredProcedureQuery( annotation, context, true ); +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 264) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 265) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 266) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 267) { +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 268) final List annotations = +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 269) (List) defaults.get( NamedStoredProcedureQueries.class ); +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 270) if ( annotations != null ) { +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 271) for ( NamedStoredProcedureQueries annotation : annotations ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 272) bindNamedStoredProcedureQueries( annotation, context, true ); +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 273) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 274) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 275) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 276) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 277) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 278) public static void bindPackage(String packageName, MetadataBuildingContext context) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 279) XPackage pckg; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 280) try { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 281) pckg = context.getBuildingOptions().getReflectionManager().packageForName( packageName ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 282) } +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 283) catch (ClassLoadingException e) { +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 284) LOG.packageNotFound( packageName ); +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 285) return; +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 286) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 287) catch ( ClassNotFoundException cnf ) { +a9b1425f3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (John Verhaeg 2010-12-21 21:51:02 +0000 288) LOG.packageNotFound( packageName ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 289) return; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 290) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 291) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 292) if ( pckg.isAnnotationPresent( SequenceGenerator.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 293) SequenceGenerator ann = pckg.getAnnotation( SequenceGenerator.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 294) IdentifierGeneratorDefinition idGen = buildIdGenerator( ann, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 295) context.getMetadataCollector().addIdentifierGenerator( idGen ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 296) if ( LOG.isTraceEnabled() ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 297) LOG.tracev( "Add sequence generator with name: {0}", idGen.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 298) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 299) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 300) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 301) if ( pckg.isAnnotationPresent( TableGenerator.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 302) TableGenerator ann = pckg.getAnnotation( TableGenerator.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 303) IdentifierGeneratorDefinition idGen = buildIdGenerator( ann, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 304) context.getMetadataCollector().addIdentifierGenerator( idGen ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 305) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 306) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 307) bindGenericGenerators( pckg, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 308) bindQueries( pckg, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 309) bindFilterDefs( pckg, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 310) bindTypeDefs( pckg, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 311) bindFetchProfiles( pckg, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 312) BinderHelper.bindAnyMetaDefs( pckg, context ); +ad2a9ef65 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-07-05 22:48:02 +0000 313) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 314) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 315) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 316) private static void bindGenericGenerators(XAnnotatedElement annotatedElement, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 317) GenericGenerator defAnn = annotatedElement.getAnnotation( GenericGenerator.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 318) GenericGenerators defsAnn = annotatedElement.getAnnotation( GenericGenerators.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 319) if ( defAnn != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 320) bindGenericGenerator( defAnn, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 321) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 322) if ( defsAnn != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 323) for ( GenericGenerator def : defsAnn.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 324) bindGenericGenerator( def, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 325) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 326) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 327) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 328) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 329) private static void bindGenericGenerator(GenericGenerator def, MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 330) context.getMetadataCollector().addIdentifierGenerator( buildIdGenerator( def, context ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 331) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 332) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 333) private static void bindQueries(XAnnotatedElement annotatedElement, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 334) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 335) SqlResultSetMapping ann = annotatedElement.getAnnotation( SqlResultSetMapping.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 336) QueryBinder.bindSqlResultSetMapping( ann, context, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 337) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 338) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 339) SqlResultSetMappings ann = annotatedElement.getAnnotation( SqlResultSetMappings.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 340) if ( ann != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 341) for ( SqlResultSetMapping current : ann.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 342) QueryBinder.bindSqlResultSetMapping( current, context, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 343) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 344) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 345) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 346) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 347) NamedQuery ann = annotatedElement.getAnnotation( NamedQuery.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 348) QueryBinder.bindQuery( ann, context, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 349) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 350) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 351) org.hibernate.annotations.NamedQuery ann = annotatedElement.getAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 352) org.hibernate.annotations.NamedQuery.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 353) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 354) QueryBinder.bindQuery( ann, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 355) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 356) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 357) NamedQueries ann = annotatedElement.getAnnotation( NamedQueries.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 358) QueryBinder.bindQueries( ann, context, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 359) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 360) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 361) org.hibernate.annotations.NamedQueries ann = annotatedElement.getAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 362) org.hibernate.annotations.NamedQueries.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 363) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 364) QueryBinder.bindQueries( ann, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 365) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 366) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 367) NamedNativeQuery ann = annotatedElement.getAnnotation( NamedNativeQuery.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 368) QueryBinder.bindNativeQuery( ann, context, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 369) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 370) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 371) org.hibernate.annotations.NamedNativeQuery ann = annotatedElement.getAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 372) org.hibernate.annotations.NamedNativeQuery.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 373) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 374) QueryBinder.bindNativeQuery( ann, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 375) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 376) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 377) NamedNativeQueries ann = annotatedElement.getAnnotation( NamedNativeQueries.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 378) QueryBinder.bindNativeQueries( ann, context, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 379) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 380) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 381) org.hibernate.annotations.NamedNativeQueries ann = annotatedElement.getAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 382) org.hibernate.annotations.NamedNativeQueries.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 383) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 384) QueryBinder.bindNativeQueries( ann, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 385) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 386) +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 387) // NamedStoredProcedureQuery handling ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 388) bindNamedStoredProcedureQuery( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 389) annotatedElement.getAnnotation( NamedStoredProcedureQuery.class ), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 390) context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 391) false +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 392) ); +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 393) +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 394) // NamedStoredProcedureQueries handling ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 395) bindNamedStoredProcedureQueries( +5ea40ce3f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-23 23:09:28 +0000 396) annotatedElement.getAnnotation( NamedStoredProcedureQueries.class ), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 397) context, +5ea40ce3f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-23 23:09:28 +0000 398) false +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 399) ); +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 400) } +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 401) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 402) private static void bindNamedStoredProcedureQueries(NamedStoredProcedureQueries annotation, MetadataBuildingContext context, boolean isDefault) { +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 403) if ( annotation != null ) { +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 404) for ( NamedStoredProcedureQuery queryAnnotation : annotation.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 405) bindNamedStoredProcedureQuery( queryAnnotation, context, isDefault ); +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 406) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 407) } +8c95a6077 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-05-09 19:47:58 +0000 408) } +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 409) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 410) private static void bindNamedStoredProcedureQuery(NamedStoredProcedureQuery annotation, MetadataBuildingContext context, boolean isDefault) { +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 411) if ( annotation != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 412) QueryBinder.bindNamedStoredProcedureQuery( annotation, context, isDefault ); +a03d44f29 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-05-21 03:37:16 +0000 413) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 414) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 415) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 416) private static IdentifierGeneratorDefinition buildIdGenerator(java.lang.annotation.Annotation ann, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 417) if ( ann == null ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 418) return null; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 419) } +4ec26fa4c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-27 08:00:27 +0000 420) +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 421) IdentifierGeneratorDefinition.Builder definitionBuilder = new IdentifierGeneratorDefinition.Builder(); +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 422) +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 423) if ( context.getMappingDefaults().getImplicitSchemaName() != null ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 424) definitionBuilder.addParam( +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 425) PersistentIdentifierGenerator.SCHEMA, +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 426) context.getMappingDefaults().getImplicitSchemaName() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 427) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 428) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 429) +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 430) if ( context.getMappingDefaults().getImplicitCatalogName() != null ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 431) definitionBuilder.addParam( +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 432) PersistentIdentifierGenerator.CATALOG, +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 433) context.getMappingDefaults().getImplicitCatalogName() +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 434) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 435) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 436) +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 437) if ( ann instanceof TableGenerator ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 438) context.getBuildingOptions().getIdGenerationTypeInterpreter().interpretTableGenerator( +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 439) (TableGenerator) ann, +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 440) definitionBuilder +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 441) ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 442) if ( LOG.isTraceEnabled() ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 443) LOG.tracev( "Add table generator with name: {0}", definitionBuilder.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 444) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 445) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 446) else if ( ann instanceof SequenceGenerator ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 447) context.getBuildingOptions().getIdGenerationTypeInterpreter().interpretSequenceGenerator( +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 448) (SequenceGenerator) ann, +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 449) definitionBuilder +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 450) ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 451) if ( LOG.isTraceEnabled() ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 452) LOG.tracev( "Add sequence generator with name: {0}", definitionBuilder.getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 453) } +4ec26fa4c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-27 08:00:27 +0000 454) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 455) else if ( ann instanceof GenericGenerator ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 456) GenericGenerator genGen = ( GenericGenerator ) ann; +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 457) definitionBuilder.setName( genGen.name() ); +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 458) definitionBuilder.setStrategy( genGen.strategy() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 459) Parameter[] params = genGen.parameters(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 460) for ( Parameter parameter : params ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 461) definitionBuilder.addParam( parameter.name(), parameter.value() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 462) } +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 463) if ( LOG.isTraceEnabled() ) { +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 464) LOG.tracev( "Add generic generator with name: {0}", definitionBuilder.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 465) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 466) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 467) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 468) throw new AssertionFailure( "Unknown Generator annotation: " + ann ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 469) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 470) +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 471) return definitionBuilder.build(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 472) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 473) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 474) /** +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 475) * Bind a class having JSR175 annotations. Subclasses have to be bound after its parent class. +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 476) * +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 477) * @param clazzToProcess entity to bind as {@code XClass} instance +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 478) * @param inheritanceStatePerClass Meta data about the inheritance relationships for all mapped classes +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 479) * +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 480) * @throws MappingException in case there is an configuration error +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 481) */ +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 482) public static void bindClass( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 483) XClass clazzToProcess, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 484) Map inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 485) MetadataBuildingContext context) throws MappingException { +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 486) //@Entity and @MappedSuperclass on the same class leads to a NPE down the road +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 487) if ( clazzToProcess.isAnnotationPresent( Entity.class ) +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 488) && clazzToProcess.isAnnotationPresent( MappedSuperclass.class ) ) { +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 489) throw new AnnotationException( "An entity cannot be annotated with both @Entity and @MappedSuperclass: " +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 490) + clazzToProcess.getName() ); +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 491) } +422ecc653 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-04-16 10:11:32 +0000 492) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 493) //TODO: be more strict with secondarytable allowance (not for ids, not for secondary table join columns etc) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 494) InheritanceState inheritanceState = inheritanceStatePerClass.get( clazzToProcess ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 495) AnnotatedClassType classType = context.getMetadataCollector().getClassType( clazzToProcess ); +88caf4d95 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:19:24 +0000 496) +88caf4d95 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:19:24 +0000 497) //Queries declared in MappedSuperclass should be usable in Subclasses +88caf4d95 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:19:24 +0000 498) if ( AnnotatedClassType.EMBEDDABLE_SUPERCLASS.equals( classType ) ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 499) bindQueries( clazzToProcess, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 500) bindTypeDefs( clazzToProcess, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 501) bindFilterDefs( clazzToProcess, context ); +88caf4d95 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:19:24 +0000 502) } +88caf4d95 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:19:24 +0000 503) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 504) if ( !isEntityClassType( clazzToProcess, classType ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 505) return; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 506) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 507) +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 508) if ( LOG.isDebugEnabled() ) { +ad17f89c4 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2011-04-12 14:07:31 +0000 509) LOG.debugf( "Binding entity from annotated class: %s", clazzToProcess.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 510) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 511) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 512) PersistentClass superEntity = getSuperEntity( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 513) clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 514) inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 515) context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 516) inheritanceState +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 517) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 518) +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 519) PersistentClass persistentClass = makePersistentClass( inheritanceState, superEntity, context ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 520) Entity entityAnn = clazzToProcess.getAnnotation( Entity.class ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 521) org.hibernate.annotations.Entity hibEntityAnn = clazzToProcess.getAnnotation( +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 522) org.hibernate.annotations.Entity.class +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 523) ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 524) EntityBinder entityBinder = new EntityBinder( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 525) entityAnn, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 526) hibEntityAnn, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 527) clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 528) persistentClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 529) context +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 530) ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 531) entityBinder.setInheritanceState( inheritanceState ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 532) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 533) bindQueries( clazzToProcess, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 534) bindFilterDefs( clazzToProcess, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 535) bindTypeDefs( clazzToProcess, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 536) bindFetchProfiles( clazzToProcess, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 537) BinderHelper.bindAnyMetaDefs( clazzToProcess, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 538) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 539) String schema = ""; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 540) String table = ""; //might be no @Table annotation on the annotated class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 541) String catalog = ""; +a2bf14ae7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2009-12-06 22:20:58 +0000 542) List uniqueConstraints = new ArrayList(); +1d9b7a06a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-05 16:09:08 +0000 543) javax.persistence.Table tabAnn = null; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 544) if ( clazzToProcess.isAnnotationPresent( javax.persistence.Table.class ) ) { +1d9b7a06a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-05 16:09:08 +0000 545) tabAnn = clazzToProcess.getAnnotation( javax.persistence.Table.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 546) table = tabAnn.name(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 547) schema = tabAnn.schema(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 548) catalog = tabAnn.catalog(); +a2bf14ae7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2009-12-06 22:20:58 +0000 549) uniqueConstraints = TableBinder.buildUniqueConstraintHolders( tabAnn.uniqueConstraints() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 550) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 551) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 552) Ejb3JoinColumn[] inheritanceJoinedColumns = makeInheritanceJoinColumns( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 553) clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 554) context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 555) inheritanceState, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 556) superEntity +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 557) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 558) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 559) final Ejb3DiscriminatorColumn discriminatorColumn; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 560) if ( InheritanceType.SINGLE_TABLE.equals( inheritanceState.getType() ) ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 561) discriminatorColumn = processSingleTableDiscriminatorProperties( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 562) clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 563) context, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 564) inheritanceState, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 565) entityBinder +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 566) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 567) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 568) else if ( InheritanceType.JOINED.equals( inheritanceState.getType() ) ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 569) discriminatorColumn = processJoinedDiscriminatorProperties( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 570) clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 571) context, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 572) inheritanceState, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 573) entityBinder +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 574) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 575) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 576) else { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 577) discriminatorColumn = null; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 578) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 579) +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 580) entityBinder.setProxy( clazzToProcess.getAnnotation( Proxy.class ) ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 581) entityBinder.setBatchSize( clazzToProcess.getAnnotation( BatchSize.class ) ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 582) entityBinder.setWhere( clazzToProcess.getAnnotation( Where.class ) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 583) entityBinder.setCache( determineCacheSettings( clazzToProcess, context ) ); +1569e6194 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Eric Dalquist 2012-02-03 17:22:07 +0000 584) entityBinder.setNaturalIdCache( clazzToProcess, clazzToProcess.getAnnotation( NaturalIdCache.class ) ); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 585) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 586) bindFilters( clazzToProcess, entityBinder, context ); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 587) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 588) entityBinder.bindEntity(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 589) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 590) if ( inheritanceState.hasTable() ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 591) Check checkAnn = clazzToProcess.getAnnotation( Check.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 592) String constraints = checkAnn == null +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 593) ? null +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 594) : checkAnn.constraints(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 595) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 596) EntityTableXref denormalizedTableXref = inheritanceState.hasDenormalizedTable() +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 597) ? context.getMetadataCollector().getEntityTableXref( superEntity.getEntityName() ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 598) : null; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 599) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 600) entityBinder.bindTable( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 601) schema, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 602) catalog, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 603) table, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 604) uniqueConstraints, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 605) constraints, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 606) denormalizedTableXref +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 607) ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 608) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 609) else { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 610) if ( clazzToProcess.isAnnotationPresent( Table.class ) ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 611) LOG.invalidTableAnnotation( clazzToProcess.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 612) } +a9b1425f3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (John Verhaeg 2010-12-21 21:51:02 +0000 613) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 614) if ( inheritanceState.getType() == InheritanceType.SINGLE_TABLE ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 615) // we at least need to properly set up the EntityTableXref +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 616) entityBinder.bindTableForDiscriminatedSubclass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 617) context.getMetadataCollector().getEntityTableXref( superEntity.getEntityName() ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 618) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 619) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 620) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 621) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 622) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 623) PropertyHolder propertyHolder = PropertyHolderBuilder.buildPropertyHolder( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 624) clazzToProcess, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 625) persistentClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 626) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 627) context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 628) inheritanceStatePerClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 629) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 630) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 631) javax.persistence.SecondaryTable secTabAnn = clazzToProcess.getAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 632) javax.persistence.SecondaryTable.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 633) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 634) javax.persistence.SecondaryTables secTabsAnn = clazzToProcess.getAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 635) javax.persistence.SecondaryTables.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 636) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 637) entityBinder.firstLevelSecondaryTablesBinding( secTabAnn, secTabsAnn ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 638) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 639) OnDelete onDeleteAnn = clazzToProcess.getAnnotation( OnDelete.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 640) boolean onDeleteAppropriate = false; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 641) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 642) // todo : sucks that this is separate from RootClass distinction +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 643) final boolean isInheritanceRoot = !inheritanceState.hasParents(); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 644) final boolean hasSubclasses = inheritanceState.hasSiblings(); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 645) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 646) if ( InheritanceType.JOINED.equals( inheritanceState.getType() ) ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 647) if ( inheritanceState.hasParents() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 648) onDeleteAppropriate = true; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 649) final JoinedSubclass jsc = ( JoinedSubclass ) persistentClass; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 650) SimpleValue key = new DependantValue( context.getMetadataCollector(), jsc.getTable(), jsc.getIdentifier() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 651) jsc.setKey( key ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 652) ForeignKey fk = clazzToProcess.getAnnotation( ForeignKey.class ); +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 653) if ( fk != null && !BinderHelper.isEmptyAnnotationValue( fk.name() ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 654) key.setForeignKeyName( fk.name() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 655) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 656) if ( onDeleteAnn != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 657) key.setCascadeDeleteEnabled( OnDeleteAction.CASCADE.equals( onDeleteAnn.action() ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 658) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 659) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 660) key.setCascadeDeleteEnabled( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 661) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 662) //we are never in a second pass at that stage, so queue it +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 663) context.getMetadataCollector().addSecondPass( new JoinedSubclassFkSecondPass( jsc, inheritanceJoinedColumns, key, context ) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 664) context.getMetadataCollector().addSecondPass( new CreateKeySecondPass( jsc ) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 665) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 666) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 667) if ( isInheritanceRoot ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 668) // the class we are processing is the root of the hierarchy, see if we had a discriminator column +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 669) // (it is perfectly valid for joined subclasses to not have discriminators). +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 670) if ( discriminatorColumn != null ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 671) // we have a discriminator column +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 672) if ( hasSubclasses || !discriminatorColumn.isImplicit() ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 673) bindDiscriminatorColumnToRootPersistentClass( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 674) (RootClass) persistentClass, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 675) discriminatorColumn, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 676) entityBinder.getSecondaryTables(), +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 677) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 678) context +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 679) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 680) //bind it again since the type might have changed +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 681) entityBinder.bindDiscriminatorValue(); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 682) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 683) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 684) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 685) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 686) else if ( InheritanceType.SINGLE_TABLE.equals( inheritanceState.getType() ) ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 687) if ( isInheritanceRoot ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 688) if ( hasSubclasses || !discriminatorColumn.isImplicit() ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 689) bindDiscriminatorColumnToRootPersistentClass( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 690) (RootClass) persistentClass, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 691) discriminatorColumn, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 692) entityBinder.getSecondaryTables(), +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 693) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 694) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 695) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 696) //bind it again since the type might have changed +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 697) entityBinder.bindDiscriminatorValue(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 698) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 699) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 700) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 701) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 702) if ( onDeleteAnn != null && !onDeleteAppropriate ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 703) LOG.invalidOnDeleteAnnotation(propertyHolder.getEntityName()); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 704) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 705) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 706) // try to find class level generators +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 707) HashMap classGenerators = buildLocalGenerators( clazzToProcess, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 708) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 709) // check properties +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 710) final InheritanceState.ElementsToProcess elementsToProcess = inheritanceState.getElementsToProcess(); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 711) inheritanceState.postProcess( persistentClass, entityBinder ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 712) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 713) final boolean subclassAndSingleTableStrategy = inheritanceState.getType() == InheritanceType.SINGLE_TABLE +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 714) && inheritanceState.hasParents(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 715) Set idPropertiesIfIdClass = new HashSet(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 716) boolean isIdClass = mapAsIdClass( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 717) inheritanceStatePerClass, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 718) inheritanceState, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 719) persistentClass, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 720) entityBinder, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 721) propertyHolder, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 722) elementsToProcess, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 723) idPropertiesIfIdClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 724) context +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 725) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 726) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 727) if ( !isIdClass ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 728) entityBinder.setWrapIdsInEmbeddedComponents( elementsToProcess.getIdPropertyCount() > 1 ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 729) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 730) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 731) processIdPropertiesIfNotAlready( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 732) inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 733) context, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 734) persistentClass, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 735) entityBinder, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 736) propertyHolder, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 737) classGenerators, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 738) elementsToProcess, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 739) subclassAndSingleTableStrategy, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 740) idPropertiesIfIdClass +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 741) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 742) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 743) if ( !inheritanceState.hasParents() ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 744) final RootClass rootClass = ( RootClass ) persistentClass; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 745) context.getMetadataCollector().addSecondPass( new CreateKeySecondPass( rootClass ) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 746) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 747) else { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 748) superEntity.addSubclass( ( Subclass ) persistentClass ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 749) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 750) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 751) context.getMetadataCollector().addEntityBinding( persistentClass ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 752) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 753) //Process secondary tables and complementary definitions (ie o.h.a.Table) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 754) context.getMetadataCollector().addSecondPass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 755) new SecondaryTableSecondPass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 756) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 757) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 758) clazzToProcess +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 759) ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 760) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 761) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 762) //add process complementary Table definition (index & all) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 763) entityBinder.processComplementaryTableDefinitions( clazzToProcess.getAnnotation( org.hibernate.annotations.Table.class ) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 764) entityBinder.processComplementaryTableDefinitions( clazzToProcess.getAnnotation( org.hibernate.annotations.Tables.class ) ); +1d9b7a06a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-05 16:09:08 +0000 765) entityBinder.processComplementaryTableDefinitions( tabAnn ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 766) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 767) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 768) /** +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 769) * Process all discriminator-related metadata per rules for "single table" inheritance +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 770) */ +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 771) private static Ejb3DiscriminatorColumn processSingleTableDiscriminatorProperties( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 772) XClass clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 773) MetadataBuildingContext context, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 774) InheritanceState inheritanceState, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 775) EntityBinder entityBinder) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 776) final boolean isRoot = !inheritanceState.hasParents(); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 777) +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 778) Ejb3DiscriminatorColumn discriminatorColumn = null; +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 779) javax.persistence.DiscriminatorColumn discAnn = clazzToProcess.getAnnotation( +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 780) javax.persistence.DiscriminatorColumn.class +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 781) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 782) DiscriminatorType discriminatorType = discAnn != null +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 783) ? discAnn.discriminatorType() +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 784) : DiscriminatorType.STRING; +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 785) +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 786) org.hibernate.annotations.DiscriminatorFormula discFormulaAnn = clazzToProcess.getAnnotation( +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 787) org.hibernate.annotations.DiscriminatorFormula.class +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 788) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 789) if ( isRoot ) { +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 790) discriminatorColumn = Ejb3DiscriminatorColumn.buildDiscriminatorColumn( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 791) discriminatorType, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 792) discAnn, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 793) discFormulaAnn, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 794) context +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 795) ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 796) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 797) if ( discAnn != null && !isRoot ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 798) LOG.invalidDiscriminatorAnnotation( clazzToProcess.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 799) } +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 800) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 801) final String discriminatorValue = clazzToProcess.isAnnotationPresent( DiscriminatorValue.class ) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 802) ? clazzToProcess.getAnnotation( DiscriminatorValue.class ).value() +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 803) : null; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 804) entityBinder.setDiscriminatorValue( discriminatorValue ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 805) +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 806) DiscriminatorOptions discriminatorOptions = clazzToProcess.getAnnotation( DiscriminatorOptions.class ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 807) if ( discriminatorOptions != null) { +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 808) entityBinder.setForceDiscriminator( discriminatorOptions.force() ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 809) entityBinder.setInsertableDiscriminator( discriminatorOptions.insert() ); +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 810) } +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 811) +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 812) return discriminatorColumn; +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 813) } +bf7607e24 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-29 10:45:08 +0000 814) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 815) /** +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 816) * Process all discriminator-related metadata per rules for "joined" inheritance +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 817) */ +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 818) private static Ejb3DiscriminatorColumn processJoinedDiscriminatorProperties( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 819) XClass clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 820) MetadataBuildingContext context, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 821) InheritanceState inheritanceState, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 822) EntityBinder entityBinder) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 823) if ( clazzToProcess.isAnnotationPresent( DiscriminatorFormula.class ) ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 824) throw new MappingException( "@DiscriminatorFormula on joined inheritance not supported at this time" ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 825) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 826) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 827) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 828) // DiscriminatorValue handling ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 829) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 830) final DiscriminatorValue discriminatorValueAnnotation = clazzToProcess.getAnnotation( DiscriminatorValue.class ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 831) final String discriminatorValue = discriminatorValueAnnotation != null +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 832) ? clazzToProcess.getAnnotation( DiscriminatorValue.class ).value() +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 833) : null; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 834) entityBinder.setDiscriminatorValue( discriminatorValue ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 835) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 836) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 837) // DiscriminatorColumn handling ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 838) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 839) final DiscriminatorColumn discriminatorColumnAnnotation = clazzToProcess.getAnnotation( DiscriminatorColumn.class ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 840) if ( !inheritanceState.hasParents() ) { +b70148a85 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:56:03 +0000 841) // we want to process the discriminator column if either: +b70148a85 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:56:03 +0000 842) // 1) There is an explicit DiscriminatorColumn annotation && we are not told to ignore them +b70148a85 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:56:03 +0000 843) // 2) There is not an explicit DiscriminatorColumn annotation && we are told to create them implicitly +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 844) final boolean generateDiscriminatorColumn; +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 845) if ( discriminatorColumnAnnotation != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 846) if ( context.getBuildingOptions().ignoreExplicitDiscriminatorsForJoinedInheritance() ) { +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 847) LOG.debugf( "Ignoring explicit DiscriminatorColumn annotation on ", clazzToProcess.getName() ); +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 848) generateDiscriminatorColumn = false; +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 849) } +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 850) else { +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 851) LOG.applyingExplicitDiscriminatorColumnForJoined( +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 852) clazzToProcess.getName(), +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 853) AvailableSettings.IGNORE_EXPLICIT_DISCRIMINATOR_COLUMNS_FOR_JOINED_SUBCLASS +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 854) ); +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 855) generateDiscriminatorColumn = true; +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 856) } +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 857) } +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 858) else { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 859) if ( context.getBuildingOptions().createImplicitDiscriminatorsForJoinedInheritance() ) { +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 860) LOG.debug( "Applying implicit DiscriminatorColumn using DiscriminatorColumn defaults" ); +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 861) generateDiscriminatorColumn = true; +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 862) } +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 863) else { +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 864) LOG.debug( "Ignoring implicit (absent) DiscriminatorColumn" ); +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 865) generateDiscriminatorColumn = false; +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 866) } +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 867) } +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 868) +26820e8a7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 16:40:36 +0000 869) if ( generateDiscriminatorColumn ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 870) final DiscriminatorType discriminatorType = discriminatorColumnAnnotation != null +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 871) ? discriminatorColumnAnnotation.discriminatorType() +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 872) : DiscriminatorType.STRING; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 873) return Ejb3DiscriminatorColumn.buildDiscriminatorColumn( +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 874) discriminatorType, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 875) discriminatorColumnAnnotation, +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 876) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 877) context +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 878) ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 879) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 880) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 881) else { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 882) if ( discriminatorColumnAnnotation != null ) { +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 883) LOG.invalidDiscriminatorAnnotation( clazzToProcess.getName() ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 884) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 885) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 886) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 887) return null; +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 888) } +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 889) +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 890) private static void processIdPropertiesIfNotAlready( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 891) Map inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 892) MetadataBuildingContext context, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 893) PersistentClass persistentClass, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 894) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 895) PropertyHolder propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 896) HashMap classGenerators, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 897) InheritanceState.ElementsToProcess elementsToProcess, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 898) boolean subclassAndSingleTableStrategy, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 899) Set idPropertiesIfIdClass) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 900) Set missingIdProperties = new HashSet( idPropertiesIfIdClass ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 901) for ( PropertyData propertyAnnotatedElement : elementsToProcess.getElements() ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 902) String propertyName = propertyAnnotatedElement.getPropertyName(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 903) if ( !idPropertiesIfIdClass.contains( propertyName ) ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 904) processElementAnnotations( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 905) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 906) subclassAndSingleTableStrategy +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 907) ? Nullability.FORCED_NULL +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 908) : Nullability.NO_CONSTRAINT, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 909) propertyAnnotatedElement, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 910) classGenerators, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 911) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 912) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 913) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 914) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 915) context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 916) inheritanceStatePerClass +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 917) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 918) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 919) else { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 920) missingIdProperties.remove( propertyName ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 921) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 922) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 923) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 924) if ( missingIdProperties.size() != 0 ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 925) StringBuilder missings = new StringBuilder(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 926) for ( String property : missingIdProperties ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 927) missings.append( property ).append( ", " ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 928) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 929) throw new AnnotationException( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 930) "Unable to find properties (" +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 931) + missings.substring( 0, missings.length() - 2 ) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 932) + ") in entity annotated with @IdClass:" + persistentClass.getEntityName() +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 933) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 934) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 935) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 936) +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 937) private static boolean mapAsIdClass( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 938) Map inheritanceStatePerClass, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 939) InheritanceState inheritanceState, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 940) PersistentClass persistentClass, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 941) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 942) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 943) InheritanceState.ElementsToProcess elementsToProcess, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 944) Set idPropertiesIfIdClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 945) MetadataBuildingContext context) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 946) /* +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 947) * We are looking for @IdClass +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 948) * In general we map the id class as identifier using the mapping metadata of the main entity's properties +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 949) * and we create an identifier mapper containing the id properties of the main entity +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 950) * +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 951) * In JPA 2, there is a shortcut if the id class is the Pk of the associated class pointed to by the id +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 952) * it ought to be treated as an embedded and not a real IdClass (at least in the Hibernate's internal way +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 953) */ +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 954) XClass classWithIdClass = inheritanceState.getClassWithIdClass( false ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 955) if ( classWithIdClass != null ) { +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 956) IdClass idClass = classWithIdClass.getAnnotation( IdClass.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 957) XClass compositeClass = context.getBuildingOptions().getReflectionManager().toXClass( idClass.value() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 958) PropertyData inferredData = new PropertyPreloadedData( +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 959) entityBinder.getPropertyAccessType(), "id", compositeClass +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 960) ); +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 961) PropertyData baseInferredData = new PropertyPreloadedData( +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 962) entityBinder.getPropertyAccessType(), "id", classWithIdClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 963) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 964) AccessType propertyAccessor = entityBinder.getPropertyAccessor( compositeClass ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 965) //In JPA 2, there is a shortcut if the IdClass is the Pk of the associated class pointed to by the id +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 966) //it ought to be treated as an embedded and not a real IdClass (at least in the Hibernate's internal way +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 967) final boolean isFakeIdClass = isIdClassPkOfTheAssociatedEntity( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 968) elementsToProcess, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 969) compositeClass, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 970) inferredData, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 971) baseInferredData, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 972) propertyAccessor, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 973) inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 974) context +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 975) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 976) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 977) if ( isFakeIdClass ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 978) return false; +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 979) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 980) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 981) boolean isComponent = true; +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 982) String generatorType = "assigned"; +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 983) String generator = BinderHelper.ANNOTATION_STRING_DEFAULT; +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 984) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 985) boolean ignoreIdAnnotations = entityBinder.isIgnoreIdAnnotations(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 986) entityBinder.setIgnoreIdAnnotations( true ); +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 987) propertyHolder.setInIdClass( true ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 988) bindIdClass( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 989) generatorType, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 990) generator, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 991) inferredData, +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 992) baseInferredData, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 993) null, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 994) propertyHolder, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 995) isComponent, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 996) propertyAccessor, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 997) entityBinder, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 998) true, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 999) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1000) context, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1001) inheritanceStatePerClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1002) ); +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 1003) propertyHolder.setInIdClass( null ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1004) inferredData = new PropertyPreloadedData( +803c73c55 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-08-28 20:07:18 +0000 1005) propertyAccessor, PropertyPath.IDENTIFIER_MAPPER_PROPERTY, compositeClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1006) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1007) Component mapper = fillComponent( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1008) propertyHolder, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1009) inferredData, +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 1010) baseInferredData, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1011) propertyAccessor, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1012) false, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1013) entityBinder, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1014) true, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1015) true, +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 1016) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1017) context, +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 1018) inheritanceStatePerClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1019) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1020) entityBinder.setIgnoreIdAnnotations( ignoreIdAnnotations ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1021) persistentClass.setIdentifierMapper( mapper ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1022) +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1023) //If id definition is on a mapped superclass, update the mapping +4d5174f55 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-21 03:05:24 +0000 1024) final org.hibernate.mapping.MappedSuperclass superclass = BinderHelper.getMappedSuperclassOrNull( +4d5174f55 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-21 03:05:24 +0000 1025) classWithIdClass, +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1026) inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1027) context +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1028) ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1029) if ( superclass != null ) { +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1030) superclass.setDeclaredIdentifierMapper( mapper ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1031) } +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1032) else { +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1033) //we are for sure on the entity +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1034) persistentClass.setDeclaredIdentifierMapper( mapper ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1035) } +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1036) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1037) Property property = new Property(); +803c73c55 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-08-28 20:07:18 +0000 1038) property.setName( PropertyPath.IDENTIFIER_MAPPER_PROPERTY ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1039) property.setNodeName( "id" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1040) property.setUpdateable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1041) property.setInsertable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1042) property.setValue( mapper ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1043) property.setPropertyAccessorName( "embedded" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1044) persistentClass.addProperty( property ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1045) entityBinder.setIgnoreIdAnnotations( true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1046) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1047) Iterator properties = mapper.getPropertyIterator(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1048) while ( properties.hasNext() ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1049) idPropertiesIfIdClass.add( ( ( Property ) properties.next() ).getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1050) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1051) return true; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1052) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1053) else { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1054) return false; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1055) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1056) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1057) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1058) private static boolean isIdClassPkOfTheAssociatedEntity( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1059) InheritanceState.ElementsToProcess elementsToProcess, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1060) XClass compositeClass, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1061) PropertyData inferredData, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1062) PropertyData baseInferredData, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1063) AccessType propertyAccessor, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1064) Map inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1065) MetadataBuildingContext context) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1066) if ( elementsToProcess.getIdPropertyCount() == 1 ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1067) final PropertyData idPropertyOnBaseClass = getUniqueIdPropertyFromBaseClass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1068) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1069) baseInferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1070) propertyAccessor, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1071) context +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1072) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1073) final InheritanceState state = inheritanceStatePerClass.get( idPropertyOnBaseClass.getClassOrElement() ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1074) if ( state == null ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1075) return false; //while it is likely a user error, let's consider it is something that might happen +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1076) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1077) final XClass associatedClassWithIdClass = state.getClassWithIdClass( true ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1078) if ( associatedClassWithIdClass == null ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1079) //we cannot know for sure here unless we try and find the @EmbeddedId +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1080) //Let's not do this thorough checking but do some extra validation +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1081) final XProperty property = idPropertyOnBaseClass.getProperty(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1082) return property.isAnnotationPresent( ManyToOne.class ) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1083) || property.isAnnotationPresent( OneToOne.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1084) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1085) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1086) else { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1087) final XClass idClass = context.getBuildingOptions().getReflectionManager().toXClass( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1088) associatedClassWithIdClass.getAnnotation( IdClass.class ).value() +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1089) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1090) return idClass.equals( compositeClass ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1091) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1092) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1093) else { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1094) return false; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1095) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1096) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1097) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1098) private static Cache determineCacheSettings(XClass clazzToProcess, MetadataBuildingContext context) { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1099) Cache cacheAnn = clazzToProcess.getAnnotation( Cache.class ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1100) if ( cacheAnn != null ) { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1101) return cacheAnn; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1102) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1103) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1104) Cacheable cacheableAnn = clazzToProcess.getAnnotation( Cacheable.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1105) SharedCacheMode mode = determineSharedCacheMode( context ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1106) switch ( mode ) { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1107) case ALL: { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1108) cacheAnn = buildCacheMock( clazzToProcess.getName(), context ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1109) break; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1110) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1111) case ENABLE_SELECTIVE: { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1112) if ( cacheableAnn != null && cacheableAnn.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1113) cacheAnn = buildCacheMock( clazzToProcess.getName(), context ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1114) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1115) break; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1116) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1117) case DISABLE_SELECTIVE: { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1118) if ( cacheableAnn == null || cacheableAnn.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1119) cacheAnn = buildCacheMock( clazzToProcess.getName(), context ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1120) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1121) break; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1122) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1123) default: { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1124) // treat both NONE and UNSPECIFIED the same +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1125) break; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1126) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1127) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1128) return cacheAnn; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1129) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1130) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1131) private static SharedCacheMode determineSharedCacheMode(MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1132) return context.getBuildingOptions().getSharedCacheMode(); +7f8c1896e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-26 18:36:59 +0000 1133) } +7f8c1896e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-26 18:36:59 +0000 1134) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1135) private static Cache buildCacheMock(String region, MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1136) return new LocalCacheAnnotationImpl( region, determineCacheConcurrencyStrategy( context ) ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1137) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1138) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1139) private static CacheConcurrencyStrategy DEFAULT_CACHE_CONCURRENCY_STRATEGY; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1140) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1141) private static CacheConcurrencyStrategy determineCacheConcurrencyStrategy(MetadataBuildingContext context) { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1142) if ( DEFAULT_CACHE_CONCURRENCY_STRATEGY == null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1143) DEFAULT_CACHE_CONCURRENCY_STRATEGY = CacheConcurrencyStrategy.fromAccessType( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1144) context.getBuildingOptions().getImplicitCacheAccessType() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1145) ); +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1146) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1147) return DEFAULT_CACHE_CONCURRENCY_STRATEGY; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1148) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1149) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1150) @SuppressWarnings({ "ClassExplicitlyAnnotation" }) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1151) private static class LocalCacheAnnotationImpl implements Cache { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1152) private final String region; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1153) private final CacheConcurrencyStrategy usage; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1154) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1155) private LocalCacheAnnotationImpl(String region, CacheConcurrencyStrategy usage) { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1156) this.region = region; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1157) this.usage = usage; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1158) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1159) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1160) public CacheConcurrencyStrategy usage() { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1161) return usage; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1162) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1163) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1164) public String region() { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1165) return region; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1166) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1167) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1168) public String include() { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1169) return "all"; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1170) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1171) +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1172) public Class annotationType() { +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1173) return Cache.class; +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1174) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1175) } +d24ed1a1d annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-01-22 07:22:50 +0000 1176) +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1177) private static PersistentClass makePersistentClass( +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1178) InheritanceState inheritanceState, +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1179) PersistentClass superEntity, +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1180) MetadataBuildingContext metadataBuildingContext) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1181) //we now know what kind of persistent entity it is +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1182) if ( !inheritanceState.hasParents() ) { +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1183) return new RootClass( metadataBuildingContext ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1184) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1185) else if ( InheritanceType.SINGLE_TABLE.equals( inheritanceState.getType() ) ) { +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1186) return new SingleTableSubclass( superEntity, metadataBuildingContext ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1187) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1188) else if ( InheritanceType.JOINED.equals( inheritanceState.getType() ) ) { +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1189) return new JoinedSubclass( superEntity, metadataBuildingContext ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1190) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1191) else if ( InheritanceType.TABLE_PER_CLASS.equals( inheritanceState.getType() ) ) { +9e063ffa2 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-06-04 19:11:36 +0000 1192) return new UnionSubclass( superEntity, metadataBuildingContext ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1193) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1194) else { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1195) throw new AssertionFailure( "Unknown inheritance type: " + inheritanceState.getType() ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1196) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1197) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1198) +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1199) private static Ejb3JoinColumn[] makeInheritanceJoinColumns( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1200) XClass clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1201) MetadataBuildingContext context, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1202) InheritanceState inheritanceState, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1203) PersistentClass superEntity) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1204) Ejb3JoinColumn[] inheritanceJoinedColumns = null; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1205) final boolean hasJoinedColumns = inheritanceState.hasParents() +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1206) && InheritanceType.JOINED.equals( inheritanceState.getType() ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1207) if ( hasJoinedColumns ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1208) //@Inheritance(JOINED) subclass need to link back to the super entity +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1209) PrimaryKeyJoinColumns jcsAnn = clazzToProcess.getAnnotation( PrimaryKeyJoinColumns.class ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1210) boolean explicitInheritanceJoinedColumns = jcsAnn != null && jcsAnn.value().length != 0; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1211) if ( explicitInheritanceJoinedColumns ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1212) int nbrOfInhJoinedColumns = jcsAnn.value().length; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1213) PrimaryKeyJoinColumn jcAnn; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1214) inheritanceJoinedColumns = new Ejb3JoinColumn[nbrOfInhJoinedColumns]; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1215) for ( int colIndex = 0; colIndex < nbrOfInhJoinedColumns; colIndex++ ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1216) jcAnn = jcsAnn.value()[colIndex]; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1217) inheritanceJoinedColumns[colIndex] = Ejb3JoinColumn.buildJoinColumn( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1218) jcAnn, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1219) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1220) superEntity.getIdentifier(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1221) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1222) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1223) context +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1224) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1225) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1226) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1227) else { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1228) PrimaryKeyJoinColumn jcAnn = clazzToProcess.getAnnotation( PrimaryKeyJoinColumn.class ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1229) inheritanceJoinedColumns = new Ejb3JoinColumn[1]; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1230) inheritanceJoinedColumns[0] = Ejb3JoinColumn.buildJoinColumn( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1231) jcAnn, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1232) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1233) superEntity.getIdentifier(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1234) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1235) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1236) context +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1237) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1238) } +3712e1ad7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (John Verhaeg 2011-01-18 05:49:48 +0000 1239) LOG.trace( "Subclass joined column(s) created" ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1240) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1241) else { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1242) if ( clazzToProcess.isAnnotationPresent( PrimaryKeyJoinColumns.class ) +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1243) || clazzToProcess.isAnnotationPresent( PrimaryKeyJoinColumn.class ) ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1244) LOG.invalidPrimaryKeyJoinColumnAnnotation(); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1245) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1246) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1247) return inheritanceJoinedColumns; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1248) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1249) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1250) private static PersistentClass getSuperEntity( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1251) XClass clazzToProcess, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1252) Map inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1253) MetadataBuildingContext context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1254) InheritanceState inheritanceState) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1255) InheritanceState superEntityState = InheritanceState.getInheritanceStateOfSuperEntity( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1256) clazzToProcess, inheritanceStatePerClass +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1257) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1258) PersistentClass superEntity = superEntityState != null +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1259) ? context.getMetadataCollector().getEntityBinding( superEntityState.getClazz().getName() ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1260) : null; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1261) if ( superEntity == null ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1262) //check if superclass is not a potential persistent class +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1263) if ( inheritanceState.hasParents() ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1264) throw new AssertionFailure( +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1265) "Subclass has to be binded after it's mother class: " +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1266) + superEntityState.getClazz().getName() +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1267) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1268) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1269) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1270) return superEntity; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1271) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1272) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1273) private static boolean isEntityClassType(XClass clazzToProcess, AnnotatedClassType classType) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1274) if ( AnnotatedClassType.EMBEDDABLE_SUPERCLASS.equals( classType ) //will be processed by their subentities +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1275) || AnnotatedClassType.NONE.equals( classType ) //to be ignored +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1276) || AnnotatedClassType.EMBEDDABLE.equals( classType ) //allow embeddable element declaration +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1277) ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1278) if ( AnnotatedClassType.NONE.equals( classType ) +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1279) && clazzToProcess.isAnnotationPresent( org.hibernate.annotations.Entity.class ) ) { +a9b1425f3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (John Verhaeg 2010-12-21 21:51:02 +0000 1280) LOG.missingEntityAnnotation( clazzToProcess.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1281) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1282) return false; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1283) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1284) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1285) if ( !classType.equals( AnnotatedClassType.ENTITY ) ) { +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1286) throw new AnnotationException( +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1287) "Annotated class should have a @javax.persistence.Entity, @javax.persistence.Embeddable or @javax.persistence.EmbeddedSuperclass annotation: " + clazzToProcess +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1288) .getName() +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1289) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1290) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1291) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1292) return true; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1293) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1294) +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1295) /* +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1296) * Process the filters defined on the given class, as well as all filters defined +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1297) * on the MappedSuperclass(s) in the inheritance hierarchy +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1298) */ +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1299) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1300) private static void bindFilters( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1301) XClass annotatedClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1302) EntityBinder entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1303) MetadataBuildingContext context) { +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1304) +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1305) bindFilters( annotatedClass, entityBinder ); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1306) +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1307) XClass classToProcess = annotatedClass.getSuperclass(); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1308) while ( classToProcess != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1309) AnnotatedClassType classType = context.getMetadataCollector().getClassType( classToProcess ); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1310) if ( AnnotatedClassType.EMBEDDABLE_SUPERCLASS.equals( classType ) ) { +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1311) bindFilters( classToProcess, entityBinder ); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1312) } +83f29d1e1 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Maxim Frolov 2014-03-17 14:59:27 +0000 1313) else { +83f29d1e1 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Maxim Frolov 2014-03-17 14:59:27 +0000 1314) break; +83f29d1e1 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Maxim Frolov 2014-03-17 14:59:27 +0000 1315) } +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1316) classToProcess = classToProcess.getSuperclass(); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1317) } +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1318) +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1319) } +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1320) +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1321) private static void bindFilters(XAnnotatedElement annotatedElement, EntityBinder entityBinder) { +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1322) +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1323) Filters filtersAnn = annotatedElement.getAnnotation( Filters.class ); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1324) if ( filtersAnn != null ) { +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1325) for ( Filter filter : filtersAnn.value() ) { +05dcc209a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Rob Worsnop 2012-06-26 22:40:58 +0000 1326) entityBinder.addFilter(filter); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1327) } +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1328) } +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1329) +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1330) Filter filterAnn = annotatedElement.getAnnotation( Filter.class ); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1331) if ( filterAnn != null ) { +05dcc209a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Rob Worsnop 2012-06-26 22:40:58 +0000 1332) entityBinder.addFilter(filterAnn); +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1333) } +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1334) } +a1e8d7cb0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-28 10:57:21 +0000 1335) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1336) private static void bindFilterDefs(XAnnotatedElement annotatedElement, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1337) FilterDef defAnn = annotatedElement.getAnnotation( FilterDef.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1338) FilterDefs defsAnn = annotatedElement.getAnnotation( FilterDefs.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1339) if ( defAnn != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1340) bindFilterDef( defAnn, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1341) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1342) if ( defsAnn != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1343) for ( FilterDef def : defsAnn.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1344) bindFilterDef( def, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1345) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1346) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1347) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1348) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1349) private static void bindFilterDef(FilterDef defAnn, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1350) Map params = new HashMap(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1351) for ( ParamDef param : defAnn.parameters() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1352) params.put( param.name(), context.getMetadataCollector().getTypeResolver().heuristicType( param.type() ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1353) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1354) FilterDefinition def = new FilterDefinition( defAnn.name(), defAnn.defaultCondition(), params ); +ad17f89c4 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2011-04-12 14:07:31 +0000 1355) LOG.debugf( "Binding filter definition: %s", def.getFilterName() ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1356) context.getMetadataCollector().addFilterDefinition( def ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1357) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1358) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1359) private static void bindTypeDefs(XAnnotatedElement annotatedElement, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1360) TypeDef defAnn = annotatedElement.getAnnotation( TypeDef.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1361) TypeDefs defsAnn = annotatedElement.getAnnotation( TypeDefs.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1362) if ( defAnn != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1363) bindTypeDef( defAnn, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1364) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1365) if ( defsAnn != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1366) for ( TypeDef def : defsAnn.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1367) bindTypeDef( def, context ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1368) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1369) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1370) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1371) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1372) private static void bindTypeDef(TypeDef defAnn, MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1373) Properties params = new Properties(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1374) for ( Parameter param : defAnn.parameters() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1375) params.setProperty( param.name(), param.value() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1376) } +c6a32b933 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-06 07:50:35 +0000 1377) +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 1378) if ( BinderHelper.isEmptyAnnotationValue( defAnn.name() ) && defAnn.defaultForType().equals( void.class ) ) { +d26c00225 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-21 17:16:57 +0000 1379) throw new AnnotationException( +d26c00225 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-21 17:16:57 +0000 1380) "Either name or defaultForType (or both) attribute should be set in TypeDef having typeClass " + +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1381) defAnn.typeClass().getName() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1382) ); +c6a32b933 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-06 07:50:35 +0000 1383) } +d26c00225 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-21 17:16:57 +0000 1384) +ad17f89c4 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2011-04-12 14:07:31 +0000 1385) final String typeBindMessageF = "Binding type definition: %s"; +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 1386) if ( !BinderHelper.isEmptyAnnotationValue( defAnn.name() ) ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1387) if ( LOG.isDebugEnabled() ) { +ad17f89c4 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2011-04-12 14:07:31 +0000 1388) LOG.debugf( typeBindMessageF, defAnn.name() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1389) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1390) context.getMetadataCollector().addTypeDefinition( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1391) new TypeDefinition( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1392) defAnn.name(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1393) defAnn.typeClass(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1394) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1395) params +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1396) ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1397) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1398) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1399) +d26c00225 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-21 17:16:57 +0000 1400) if ( !defAnn.defaultForType().equals( void.class ) ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1401) if ( LOG.isDebugEnabled() ) { +ad17f89c4 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2011-04-12 14:07:31 +0000 1402) LOG.debugf( typeBindMessageF, defAnn.defaultForType().getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1403) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1404) context.getMetadataCollector().addTypeDefinition( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1405) new TypeDefinition( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1406) defAnn.defaultForType().getName(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1407) defAnn.typeClass(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1408) new String[]{ defAnn.defaultForType().getName() }, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1409) params +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1410) ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1411) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1412) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1413) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1414) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1415) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1416) private static void bindFetchProfiles(XAnnotatedElement annotatedElement, MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1417) FetchProfile fetchProfileAnnotation = annotatedElement.getAnnotation( FetchProfile.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1418) FetchProfiles fetchProfileAnnotations = annotatedElement.getAnnotation( FetchProfiles.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1419) if ( fetchProfileAnnotation != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1420) bindFetchProfile( fetchProfileAnnotation, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1421) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1422) if ( fetchProfileAnnotations != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1423) for ( FetchProfile profile : fetchProfileAnnotations.value() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1424) bindFetchProfile( profile, context ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1425) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1426) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1427) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1428) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1429) private static void bindFetchProfile(FetchProfile fetchProfileAnnotation, MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1430) for ( FetchProfile.FetchOverride fetch : fetchProfileAnnotation.fetchOverrides() ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1431) org.hibernate.annotations.FetchMode mode = fetch.mode(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1432) if ( !mode.equals( org.hibernate.annotations.FetchMode.JOIN ) ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1433) throw new MappingException( "Only FetchMode.JOIN is currently supported" ); +c6a32b933 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-06 07:50:35 +0000 1434) } +d26c00225 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sharath Reddy 2009-10-21 17:16:57 +0000 1435) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1436) context.getMetadataCollector().addSecondPass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1437) new VerifyFetchProfileReferenceSecondPass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1438) fetchProfileAnnotation.name(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1439) fetch, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1440) context +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1441) ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1442) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1443) } +c6a32b933 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-06 07:50:35 +0000 1444) } +c6a32b933 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-06 07:50:35 +0000 1445) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1446) +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 1447) private static void bindDiscriminatorColumnToRootPersistentClass( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1448) RootClass rootClass, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 1449) Ejb3DiscriminatorColumn discriminatorColumn, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 1450) Map secondaryTables, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 1451) PropertyHolder propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1452) MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1453) if ( rootClass.getDiscriminator() == null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1454) if ( discriminatorColumn == null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1455) throw new AssertionFailure( "discriminator column should have been built" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1456) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1457) discriminatorColumn.setJoins( secondaryTables ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1458) discriminatorColumn.setPropertyHolder( propertyHolder ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1459) SimpleValue discriminatorColumnBinding = new SimpleValue( context.getMetadataCollector(), rootClass.getTable() ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 1460) rootClass.setDiscriminator( discriminatorColumnBinding ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 1461) discriminatorColumn.linkWithValue( discriminatorColumnBinding ); +5329bba1e hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-12-13 06:11:25 +0000 1462) discriminatorColumnBinding.setTypeName( discriminatorColumn.getDiscriminatorTypeName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1463) rootClass.setPolymorphic( true ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1464) if ( LOG.isTraceEnabled() ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1465) LOG.tracev( "Setting discriminator for entity {0}", rootClass.getEntityName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1466) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1467) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1468) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1469) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1470) /** +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1471) * @param elements List of {@code ProperyData} instances +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 1472) * @param defaultAccessType The default value access strategy which has to be used in case no explicit local access +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1473) * strategy is used +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1474) * @param propertyContainer Metadata about a class and its properties +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1475) * +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 1476) * @return the number of id properties found while iterating the elements of {@code annotatedClass} using +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1477) * the determined access strategy, {@code false} otherwise. +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1478) */ +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 1479) static int addElementsOfClass( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1480) List elements, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1481) AccessType defaultAccessType, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1482) PropertyContainer propertyContainer, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1483) MetadataBuildingContext context) { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1484) int idPropertyCounter = 0; +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 1485) AccessType accessType = defaultAccessType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1486) +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 1487) if ( propertyContainer.hasExplicitAccessStrategy() ) { +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 1488) accessType = propertyContainer.getExplicitAccessStrategy(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1489) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1490) +2dd470af1 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-01-05 21:51:35 +0000 1491) Collection properties = propertyContainer.getProperties( accessType ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1492) for ( XProperty p : properties ) { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1493) final int currentIdPropertyCounter = addProperty( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1494) propertyContainer, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1495) p, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1496) elements, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1497) accessType.getType(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1498) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1499) ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1500) idPropertyCounter += currentIdPropertyCounter; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1501) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1502) return idPropertyCounter; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1503) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1504) +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1505) private static int addProperty( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1506) PropertyContainer propertyContainer, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1507) XProperty property, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1508) List annElts, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1509) String propertyAccessor, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1510) MetadataBuildingContext context) { +6588ede3a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-19 18:57:19 +0000 1511) final XClass declaringClass = propertyContainer.getDeclaringClass(); +6588ede3a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-19 18:57:19 +0000 1512) final XClass entity = propertyContainer.getEntityAtStake(); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1513) int idPropertyCounter = 0; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1514) PropertyData propertyAnnotatedElement = new PropertyInferredData( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1515) declaringClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1516) property, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1517) propertyAccessor, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1518) context.getBuildingOptions().getReflectionManager() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1519) ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1520) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1521) /* +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1522) * put element annotated by @Id in front +c7c6981a5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-28 18:14:25 +0000 1523) * since it has to be parsed before any association by Hibernate +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1524) */ +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1525) final XAnnotatedElement element = propertyAnnotatedElement.getProperty(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1526) if ( element.isAnnotationPresent( Id.class ) || element.isAnnotationPresent( EmbeddedId.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1527) annElts.add( 0, propertyAnnotatedElement ); +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1528) /** +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1529) * The property must be put in hibernate.properties as it's a system wide property. Fixable? +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1530) * TODO support true/false/default on the property instead of present / not present +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1531) * TODO is @Column mandatory? +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1532) * TODO add method support +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1533) */ +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1534) if ( context.getBuildingOptions().isSpecjProprietarySyntaxEnabled() ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1535) if ( element.isAnnotationPresent( Id.class ) && element.isAnnotationPresent( Column.class ) ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1536) String columnName = element.getAnnotation( Column.class ).name(); +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1537) for ( XProperty prop : declaringClass.getDeclaredProperties( AccessType.FIELD.getType() ) ) { +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1538) if ( !prop.isAnnotationPresent( MapsId.class ) ) { +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1539) /** +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1540) * The detection of a configured individual JoinColumn differs between Annotation +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1541) * and XML configuration processing. +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1542) */ +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1543) boolean isRequiredAnnotationPresent = false; +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1544) JoinColumns groupAnnotation = prop.getAnnotation( JoinColumns.class ); +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1545) if ( (prop.isAnnotationPresent( JoinColumn.class ) +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1546) && prop.getAnnotation( JoinColumn.class ).name().equals( columnName )) ) { +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1547) isRequiredAnnotationPresent = true; +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1548) } +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1549) else if ( prop.isAnnotationPresent( JoinColumns.class ) ) { +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1550) for ( JoinColumn columnAnnotation : groupAnnotation.value() ) { +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1551) if ( columnName.equals( columnAnnotation.name() ) ) { +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1552) isRequiredAnnotationPresent = true; +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1553) break; +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1554) } +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1555) } +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1556) } +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1557) if ( isRequiredAnnotationPresent ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1558) //create a PropertyData fpr the specJ property holding the mapping +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1559) PropertyData specJPropertyData = new PropertyInferredData( +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1560) declaringClass, +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1561) //same dec +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1562) prop, +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1563) // the actual @XToOne property +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1564) propertyAccessor, +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1565) //TODO we should get the right accessor but the same as id would do +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1566) context.getBuildingOptions().getReflectionManager() +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1567) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1568) context.getMetadataCollector().addPropertyAnnotatedWithMapsIdSpecj( +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1569) entity, +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1570) specJPropertyData, +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1571) element.toString() +6a48cccd5 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-09-05 17:34:03 +0000 1572) ); +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1573) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1574) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1575) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1576) } +961caf770 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Jeremy Whiting 2012-09-05 14:05:13 +0000 1577) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 1578) +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 1579) if ( element.isAnnotationPresent( ManyToOne.class ) || element.isAnnotationPresent( OneToOne.class ) ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1580) context.getMetadataCollector().addToOneAndIdProperty( entity, propertyAnnotatedElement ); +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 1581) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1582) idPropertyCounter++; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1583) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1584) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1585) annElts.add( propertyAnnotatedElement ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1586) } +6588ede3a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-19 18:57:19 +0000 1587) if ( element.isAnnotationPresent( MapsId.class ) ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1588) context.getMetadataCollector().addPropertyAnnotatedWithMapsId( entity, propertyAnnotatedElement ); +6588ede3a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-19 18:57:19 +0000 1589) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1590) +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1591) return idPropertyCounter; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1592) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1593) +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1594) /* +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1595) * Process annotation of a particular property +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1596) */ +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1597) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1598) private static void processElementAnnotations( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1599) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1600) Nullability nullability, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1601) PropertyData inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1602) HashMap classGenerators, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1603) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1604) boolean isIdentifierMapper, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1605) boolean isComponentEmbedded, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1606) boolean inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1607) MetadataBuildingContext context, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 1608) Map inheritanceStatePerClass) throws MappingException { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1609) /** +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1610) * inSecondPass can only be used to apply right away the second pass of a composite-element +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1611) * Because it's a value type, there is no bidirectional association, hence second pass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1612) * ordering does not matter +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1613) */ +6588ede3a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-19 18:57:19 +0000 1614) +cbbadea53 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Nikolay Shestakov 2013-04-12 13:56:41 +0000 1615) final boolean traceEnabled = LOG.isTraceEnabled(); +cbbadea53 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Nikolay Shestakov 2013-04-12 13:56:41 +0000 1616) if ( traceEnabled ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1617) LOG.tracev( "Processing annotations of {0}.{1}" , propertyHolder.getEntityName(), inferredData.getPropertyName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1618) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1619) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 1620) final XProperty property = inferredData.getProperty(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1621) if ( property.isAnnotationPresent( Parent.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1622) if ( propertyHolder.isComponent() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1623) propertyHolder.setParentProperty( property.getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1624) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1625) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1626) throw new AnnotationException( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1627) "@Parent cannot be applied outside an embeddable object: " +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 1628) + BinderHelper.getPath( propertyHolder, inferredData ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1629) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1630) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1631) return; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1632) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1633) +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 1634) ColumnsBuilder columnsBuilder = new ColumnsBuilder( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1635) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1636) nullability, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1637) property, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1638) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1639) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1640) context +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 1641) ).extractMetadata(); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 1642) Ejb3Column[] columns = columnsBuilder.getColumns(); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 1643) Ejb3JoinColumn[] joinColumns = columnsBuilder.getJoinColumns(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1644) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1645) final XClass returnedClass = inferredData.getClassOrElement(); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 1646) +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1647) //prepare PropertyBinder +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1648) PropertyBinder propertyBinder = new PropertyBinder(); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1649) propertyBinder.setName( inferredData.getPropertyName() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1650) propertyBinder.setReturnedClassName( inferredData.getTypeName() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1651) propertyBinder.setAccessType( inferredData.getDefaultAccess() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1652) propertyBinder.setHolder( propertyHolder ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1653) propertyBinder.setProperty( property ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1654) propertyBinder.setReturnedClass( inferredData.getPropertyClass() ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1655) propertyBinder.setBuildingContext( context ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1656) if ( isIdentifierMapper ) { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1657) propertyBinder.setInsertable( false ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1658) propertyBinder.setUpdatable( false ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1659) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1660) propertyBinder.setDeclaringClass( inferredData.getDeclaringClass() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1661) propertyBinder.setEntityBinder( entityBinder ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1662) propertyBinder.setInheritanceStatePerClass( inheritanceStatePerClass ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1663) +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 1664) boolean isId = !entityBinder.isIgnoreIdAnnotations() && +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1665) ( property.isAnnotationPresent( Id.class ) +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 1666) || property.isAnnotationPresent( EmbeddedId.class ) ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1667) propertyBinder.setId( isId ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1668) +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 1669) if ( property.isAnnotationPresent( Version.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1670) if ( isIdentifierMapper ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1671) throw new AnnotationException( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1672) "@IdClass class should not have @Version property" +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1673) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1674) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1675) if ( !( propertyHolder.getPersistentClass() instanceof RootClass ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1676) throw new AnnotationException( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1677) "Unable to define/override @Version on a subclass: " +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1678) + propertyHolder.getEntityName() +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1679) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1680) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1681) if ( !propertyHolder.isEntity() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1682) throw new AnnotationException( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1683) "Unable to define @Version on an embedded class: " +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1684) + propertyHolder.getEntityName() +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1685) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1686) } +cbbadea53 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Nikolay Shestakov 2013-04-12 13:56:41 +0000 1687) if ( traceEnabled ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1688) LOG.tracev( "{0} is a version property", inferredData.getPropertyName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1689) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1690) RootClass rootClass = ( RootClass ) propertyHolder.getPersistentClass(); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1691) propertyBinder.setColumns( columns ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1692) Property prop = propertyBinder.makePropertyValueAndBind(); +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 1693) setVersionInformation( property, propertyBinder ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1694) rootClass.setVersion( prop ); +c6a32b933 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-06 07:50:35 +0000 1695) +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1696) //If version is on a mapped superclass, update the mapping +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1697) final org.hibernate.mapping.MappedSuperclass superclass = BinderHelper.getMappedSuperclassOrNull( +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1698) inferredData.getDeclaringClass(), +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1699) inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1700) context +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1701) ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1702) if ( superclass != null ) { +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1703) superclass.setDeclaredVersion( prop ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1704) } +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1705) else { +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1706) //we know the property is on the actual entity +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1707) rootClass.setDeclaredVersion( prop ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1708) } +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 1709) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1710) SimpleValue simpleValue = ( SimpleValue ) prop.getValue(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1711) simpleValue.setNullValue( "undefined" ); +b51164aef hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-26 23:50:39 +0000 1712) rootClass.setOptimisticLockStyle( OptimisticLockStyle.VERSION ); +cbbadea53 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Nikolay Shestakov 2013-04-12 13:56:41 +0000 1713) if ( traceEnabled ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1714) LOG.tracev( "Version name: {0}, unsavedValue: {1}", rootClass.getVersion().getName(), +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1715) ( (SimpleValue) rootClass.getVersion().getValue() ).getNullValue() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 1716) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1717) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1718) else { +3d911bd65 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 13:22:43 +0000 1719) final boolean forcePersist = property.isAnnotationPresent( MapsId.class ) +3d911bd65 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 13:22:43 +0000 1720) || property.isAnnotationPresent( Id.class ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 1721) if ( property.isAnnotationPresent( ManyToOne.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1722) ManyToOne ann = property.getAnnotation( ManyToOne.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1723) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1724) //check validity +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1725) if ( property.isAnnotationPresent( Column.class ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1726) || property.isAnnotationPresent( Columns.class ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1727) throw new AnnotationException( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1728) "@Column(s) not allowed on a @ManyToOne property: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1729) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1730) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1731) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1732) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1733) Cascade hibernateCascade = property.getAnnotation( Cascade.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1734) NotFound notFound = property.getAnnotation( NotFound.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1735) boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1736) OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1737) boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() ); +b1f925458 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-12 18:48:42 +0000 1738) JoinTable assocTable = propertyHolder.getJoinTable( property ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1739) if ( assocTable != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1740) Join join = propertyHolder.addJoin( assocTable, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1741) for ( Ejb3JoinColumn joinColumn : joinColumns ) { +1f9c157db hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-22 19:41:00 +0000 1742) joinColumn.setExplicitTableName( join.getTable().getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1743) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1744) } +3d911bd65 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 13:22:43 +0000 1745) final boolean mandatory = !ann.optional() || forcePersist; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1746) bindManyToOne( +3d911bd65 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 13:22:43 +0000 1747) getCascadeStrategy( ann.cascade(), hibernateCascade, false, forcePersist ), +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1748) joinColumns, +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 1749) !mandatory, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1750) ignoreNotFound, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1751) onDeleteCascade, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1752) ToOneBinder.getTargetEntity( inferredData, context ), +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1753) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1754) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1755) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1756) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1757) inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1758) propertyBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1759) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1760) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1761) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1762) else if ( property.isAnnotationPresent( OneToOne.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1763) OneToOne ann = property.getAnnotation( OneToOne.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1764) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1765) //check validity +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1766) if ( property.isAnnotationPresent( Column.class ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1767) || property.isAnnotationPresent( Columns.class ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1768) throw new AnnotationException( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1769) "@Column(s) not allowed on a @OneToOne property: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1770) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1771) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1772) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1773) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1774) //FIXME support a proper PKJCs +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1775) boolean trueOneToOne = property.isAnnotationPresent( PrimaryKeyJoinColumn.class ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1776) || property.isAnnotationPresent( PrimaryKeyJoinColumns.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1777) Cascade hibernateCascade = property.getAnnotation( Cascade.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1778) NotFound notFound = property.getAnnotation( NotFound.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1779) boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1780) OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1781) boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() ); +b1f925458 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-12 18:48:42 +0000 1782) JoinTable assocTable = propertyHolder.getJoinTable( property ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1783) if ( assocTable != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1784) Join join = propertyHolder.addJoin( assocTable, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1785) for ( Ejb3JoinColumn joinColumn : joinColumns ) { +1f9c157db hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-22 19:41:00 +0000 1786) joinColumn.setExplicitTableName( join.getTable().getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1787) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1788) } +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 1789) //MapsId means the columns belong to the pk => not null +c180d721c hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Gail Badner 2011-10-12 08:56:56 +0000 1790) //@OneToOne with @PKJC can still be optional +c180d721c hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Gail Badner 2011-10-12 08:56:56 +0000 1791) final boolean mandatory = !ann.optional() || forcePersist; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1792) bindOneToOne( +3d911bd65 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 13:22:43 +0000 1793) getCascadeStrategy( ann.cascade(), hibernateCascade, ann.orphanRemoval(), forcePersist ), +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1794) joinColumns, +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 1795) !mandatory, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1796) getFetchMode( ann.fetch() ), +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1797) ignoreNotFound, onDeleteCascade, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1798) ToOneBinder.getTargetEntity( inferredData, context ), +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1799) propertyHolder, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1800) inferredData, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1801) ann.mappedBy(), +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1802) trueOneToOne, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1803) isIdentifierMapper, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1804) inSecondPass, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 1805) propertyBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1806) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1807) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1808) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1809) else if ( property.isAnnotationPresent( org.hibernate.annotations.Any.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1810) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1811) //check validity +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1812) if ( property.isAnnotationPresent( Column.class ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1813) || property.isAnnotationPresent( Columns.class ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1814) throw new AnnotationException( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1815) "@Column(s) not allowed on a @Any property: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1816) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1817) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1818) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1819) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1820) Cascade hibernateCascade = property.getAnnotation( Cascade.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1821) OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1822) boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() ); +b1f925458 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-12 18:48:42 +0000 1823) JoinTable assocTable = propertyHolder.getJoinTable( property ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1824) if ( assocTable != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1825) Join join = propertyHolder.addJoin( assocTable, false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1826) for ( Ejb3JoinColumn joinColumn : joinColumns ) { +1f9c157db hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-22 19:41:00 +0000 1827) joinColumn.setExplicitTableName( join.getTable().getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1828) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1829) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1830) bindAny( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1831) getCascadeStrategy( null, hibernateCascade, false, forcePersist ), +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1832) //@Any has not cascade attribute +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1833) joinColumns, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1834) onDeleteCascade, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1835) nullability, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1836) propertyHolder, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1837) inferredData, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1838) entityBinder, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1839) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1840) context +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1841) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1842) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1843) else if ( property.isAnnotationPresent( OneToMany.class ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1844) || property.isAnnotationPresent( ManyToMany.class ) +11668ca67 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-05-07 21:34:21 +0000 1845) || property.isAnnotationPresent( ElementCollection.class ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1846) || property.isAnnotationPresent( ManyToAny.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1847) OneToMany oneToManyAnn = property.getAnnotation( OneToMany.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1848) ManyToMany manyToManyAnn = property.getAnnotation( ManyToMany.class ); +11668ca67 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-05-07 21:34:21 +0000 1849) ElementCollection elementCollectionAnn = property.getAnnotation( ElementCollection.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1850) +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1851) final IndexColumn indexColumn; +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1852) +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1853) if ( property.isAnnotationPresent( OrderColumn.class ) ) { +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1854) indexColumn = IndexColumn.buildColumnFromAnnotation( +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1855) property.getAnnotation( OrderColumn.class ), +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1856) propertyHolder, +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1857) inferredData, +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1858) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1859) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1860) ); +54bc9fbf9 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 17:26:33 +0000 1861) if ( property.isAnnotationPresent( ListIndexBase.class ) ) { +54bc9fbf9 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 17:26:33 +0000 1862) indexColumn.setBase( ( property.getAnnotation( ListIndexBase.class ) ).value() ); +54bc9fbf9 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 17:26:33 +0000 1863) } +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1864) } +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1865) else { +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1866) //if @IndexColumn is not there, the generated IndexColumn is an implicit column and not used. +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1867) //so we can leave the legacy processing as the default +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1868) indexColumn = IndexColumn.buildColumnFromAnnotation( +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1869) property.getAnnotation( org.hibernate.annotations.IndexColumn.class ), +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1870) propertyHolder, +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1871) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1872) context +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1873) ); +eeb136fa7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 20:40:50 +0000 1874) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1875) CollectionBinder collectionBinder = CollectionBinder.getCollectionBinder( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1876) propertyHolder.getEntityName(), +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1877) property, +43dd13073 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-04 18:50:45 +0000 1878) !indexColumn.isImplicit(), +36c135ab6 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-03-05 16:24:47 +0000 1879) property.isAnnotationPresent( MapKeyType.class ), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1880) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1881) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1882) collectionBinder.setIndexColumn( indexColumn ); +232a77e5d core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-26 21:00:47 +0000 1883) collectionBinder.setMapKey( property.getAnnotation( MapKey.class ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1884) collectionBinder.setPropertyName( inferredData.getPropertyName() ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1885) +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1886) collectionBinder.setBatchSize( property.getAnnotation( BatchSize.class ) ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1887) +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1888) collectionBinder.setJpaOrderBy( property.getAnnotation( javax.persistence.OrderBy.class ) ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1889) collectionBinder.setSqlOrderBy( property.getAnnotation( OrderBy.class ) ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1890) +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1891) collectionBinder.setSort( property.getAnnotation( Sort.class ) ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1892) collectionBinder.setNaturalSort( property.getAnnotation( SortNatural.class ) ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1893) collectionBinder.setComparatorSort( property.getAnnotation( SortComparator.class ) ); +33640ae2b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-04-10 20:09:45 +0000 1894) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1895) Cache cachAnn = property.getAnnotation( Cache.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1896) collectionBinder.setCache( cachAnn ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1897) collectionBinder.setPropertyHolder( propertyHolder ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1898) Cascade hibernateCascade = property.getAnnotation( Cascade.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1899) NotFound notFound = property.getAnnotation( NotFound.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1900) boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1901) collectionBinder.setIgnoreNotFound( ignoreNotFound ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1902) collectionBinder.setCollectionType( inferredData.getProperty().getElementClass() ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1903) collectionBinder.setBuildingContext( context ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 1904) collectionBinder.setAccessType( inferredData.getDefaultAccess() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1905) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 1906) Ejb3Column[] elementColumns; +8b061f993 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-07 13:56:47 +0000 1907) //do not use "element" if you are a JPA 2 @ElementCollection only for legacy Hibernate mappings +8b061f993 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-07 13:56:47 +0000 1908) boolean isJPA2ForValueMapping = property.isAnnotationPresent( ElementCollection.class ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1909) PropertyData virtualProperty = isJPA2ForValueMapping ? inferredData : new WrappedInferredData( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1910) inferredData, "element" +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1911) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1912) if ( property.isAnnotationPresent( Column.class ) || property.isAnnotationPresent( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1913) Formula.class +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1914) ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1915) Column ann = property.getAnnotation( Column.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1916) Formula formulaAnn = property.getAnnotation( Formula.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1917) elementColumns = Ejb3Column.buildColumnFromAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1918) new Column[] { ann }, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1919) formulaAnn, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1920) nullability, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1921) propertyHolder, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1922) virtualProperty, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1923) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1924) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1925) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1926) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1927) else if ( property.isAnnotationPresent( Columns.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1928) Columns anns = property.getAnnotation( Columns.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1929) elementColumns = Ejb3Column.buildColumnFromAnnotation( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1930) anns.columns(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1931) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1932) nullability, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1933) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1934) virtualProperty, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1935) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1936) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1937) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1938) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1939) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1940) elementColumns = Ejb3Column.buildColumnFromAnnotation( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1941) null, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1942) null, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1943) nullability, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1944) propertyHolder, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1945) virtualProperty, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1946) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1947) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1948) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1949) } +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1950) { +20d22941c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-21 02:07:50 +0000 1951) Column[] keyColumns = null; +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1952) //JPA 2 has priority and has different default column values, differenciate legacy from JPA 2 +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1953) Boolean isJPA2 = null; +20d22941c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-21 02:07:50 +0000 1954) if ( property.isAnnotationPresent( MapKeyColumn.class ) ) { +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1955) isJPA2 = Boolean.TRUE; +20d22941c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-21 02:07:50 +0000 1956) keyColumns = new Column[] { new MapKeyColumnDelegator( property.getAnnotation( MapKeyColumn.class ) ) }; +20d22941c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-21 02:07:50 +0000 1957) } +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1958) +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1959) //not explicitly legacy +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1960) if ( isJPA2 == null ) { +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1961) isJPA2 = Boolean.TRUE; +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1962) } +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1963) +20d22941c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-21 02:07:50 +0000 1964) //nullify empty array +20d22941c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-21 02:07:50 +0000 1965) keyColumns = keyColumns != null && keyColumns.length > 0 ? keyColumns : null; +20d22941c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-21 02:07:50 +0000 1966) +ef1cb9f06 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-04 16:47:08 +0000 1967) //"mapkey" is the legacy column name of the key column pre JPA 2 +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1968) PropertyData mapKeyVirtualProperty = new WrappedInferredData( inferredData, "mapkey" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1969) Ejb3Column[] mapColumns = Ejb3Column.buildColumnFromAnnotation( +20d22941c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-21 02:07:50 +0000 1970) keyColumns, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1971) null, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1972) Nullability.FORCED_NOT_NULL, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1973) propertyHolder, +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1974) isJPA2 ? inferredData : mapKeyVirtualProperty, +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1975) isJPA2 ? "_KEY" : null, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1976) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 1977) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1978) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 1979) collectionBinder.setMapKeyColumns( mapColumns ); +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1980) } +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1981) { +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1982) JoinColumn[] joinKeyColumns = null; +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1983) //JPA 2 has priority and has different default column values, differenciate legacy from JPA 2 +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1984) Boolean isJPA2 = null; +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1985) if ( property.isAnnotationPresent( MapKeyJoinColumns.class ) ) { +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1986) isJPA2 = Boolean.TRUE; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1987) final MapKeyJoinColumn[] mapKeyJoinColumns = property.getAnnotation( MapKeyJoinColumns.class ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1988) .value(); +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1989) joinKeyColumns = new JoinColumn[mapKeyJoinColumns.length]; +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1990) int index = 0; +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1991) for ( MapKeyJoinColumn joinColumn : mapKeyJoinColumns ) { +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1992) joinKeyColumns[index] = new MapKeyJoinColumnDelegator( joinColumn ); +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1993) index++; +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 1994) } +74df160f3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2011-03-14 17:53:52 +0000 1995) if ( property.isAnnotationPresent( MapKeyJoinColumn.class ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1996) throw new AnnotationException( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1997) "@MapKeyJoinColumn and @MapKeyJoinColumns used on the same property: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1998) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 1999) ); +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2000) } +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2001) } +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2002) else if ( property.isAnnotationPresent( MapKeyJoinColumn.class ) ) { +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2003) isJPA2 = Boolean.TRUE; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2004) joinKeyColumns = new JoinColumn[] { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2005) new MapKeyJoinColumnDelegator( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2006) property.getAnnotation( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2007) MapKeyJoinColumn.class +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2008) ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2009) ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2010) }; +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2011) } +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2012) //not explicitly legacy +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2013) if ( isJPA2 == null ) { +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2014) isJPA2 = Boolean.TRUE; +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2015) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2016) +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2017) PropertyData mapKeyVirtualProperty = new WrappedInferredData( inferredData, "mapkey" ); +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2018) Ejb3JoinColumn[] mapJoinColumns = Ejb3JoinColumn.buildJoinColumnsWithDefaultColumnSuffix( +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2019) joinKeyColumns, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2020) null, +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2021) entityBinder.getSecondaryTables(), +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2022) propertyHolder, +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2023) isJPA2 ? inferredData.getPropertyName() : mapKeyVirtualProperty.getPropertyName(), +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2024) isJPA2 ? "_KEY" : null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2025) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2026) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2027) collectionBinder.setMapKeyManyToManyColumns( mapJoinColumns ); +e093ee46c annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-22 00:16:59 +0000 2028) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2029) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2030) //potential element +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2031) collectionBinder.setEmbedded( property.isAnnotationPresent( Embedded.class ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2032) collectionBinder.setElementColumns( elementColumns ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2033) collectionBinder.setProperty( property ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2034) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2035) //TODO enhance exception with @ManyToAny and @CollectionOfElements +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2036) if ( oneToManyAnn != null && manyToManyAnn != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2037) throw new AnnotationException( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2038) "@OneToMany and @ManyToMany on the same property is not allowed: " +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2039) + propertyHolder.getEntityName() + "." + inferredData.getPropertyName() +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2040) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2041) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2042) String mappedBy = null; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2043) if ( oneToManyAnn != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2044) for ( Ejb3JoinColumn column : joinColumns ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2045) if ( column.isSecondary() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2046) throw new NotYetImplementedException( "Collections having FK in secondary table" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2047) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2048) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2049) collectionBinder.setFkJoinColumns( joinColumns ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2050) mappedBy = oneToManyAnn.mappedBy(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2051) collectionBinder.setTargetEntity( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2052) context.getBuildingOptions().getReflectionManager().toXClass( oneToManyAnn.targetEntity() ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2053) ); +165f2e5f7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2009-12-22 18:07:38 +0000 2054) collectionBinder.setCascadeStrategy( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2055) getCascadeStrategy( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2056) oneToManyAnn.cascade(), hibernateCascade, oneToManyAnn.orphanRemoval(), false +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2057) ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2058) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2059) collectionBinder.setOneToMany( true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2060) } +ffb14b28b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2011-06-27 14:58:18 +0000 2061) else if ( elementCollectionAnn != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2062) for ( Ejb3JoinColumn column : joinColumns ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2063) if ( column.isSecondary() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2064) throw new NotYetImplementedException( "Collections having FK in secondary table" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2065) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2066) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2067) collectionBinder.setFkJoinColumns( joinColumns ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2068) mappedBy = ""; +ffb14b28b hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2011-06-27 14:58:18 +0000 2069) final Class targetElement = elementCollectionAnn.targetClass(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2070) collectionBinder.setTargetEntity( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2071) context.getBuildingOptions().getReflectionManager().toXClass( targetElement ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2072) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2073) //collectionBinder.setCascadeStrategy( getCascadeStrategy( embeddedCollectionAnn.cascade(), hibernateCascade ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2074) collectionBinder.setOneToMany( true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2075) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2076) else if ( manyToManyAnn != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2077) mappedBy = manyToManyAnn.mappedBy(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2078) collectionBinder.setTargetEntity( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2079) context.getBuildingOptions().getReflectionManager().toXClass( manyToManyAnn.targetEntity() ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2080) ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2081) collectionBinder.setCascadeStrategy( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2082) getCascadeStrategy( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2083) manyToManyAnn.cascade(), hibernateCascade, false, false +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2084) ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2085) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2086) collectionBinder.setOneToMany( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2087) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2088) else if ( property.isAnnotationPresent( ManyToAny.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2089) mappedBy = ""; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2090) collectionBinder.setTargetEntity( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2091) context.getBuildingOptions().getReflectionManager().toXClass( void.class ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2092) ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2093) collectionBinder.setCascadeStrategy( getCascadeStrategy( null, hibernateCascade, false, false ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2094) collectionBinder.setOneToMany( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2095) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2096) collectionBinder.setMappedBy( mappedBy ); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2097) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2098) bindJoinedTableAssociation( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2099) property, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2100) context, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2101) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2102) collectionBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2103) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2104) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2105) mappedBy +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2106) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2107) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2108) OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2109) boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2110) collectionBinder.setCascadeDeleteEnabled( onDeleteCascade ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2111) if ( isIdentifierMapper ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2112) collectionBinder.setInsertable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2113) collectionBinder.setUpdatable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2114) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2115) if ( property.isAnnotationPresent( CollectionId.class ) ) { //do not compute the generators unless necessary +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2116) HashMap localGenerators = ( HashMap ) classGenerators.clone(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2117) localGenerators.putAll( buildLocalGenerators( property, context ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2118) collectionBinder.setLocalGenerators( localGenerators ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2119) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2120) } +c7c6981a5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-28 18:14:25 +0000 2121) collectionBinder.setInheritanceStatePerClass( inheritanceStatePerClass ); +c7c6981a5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-28 18:14:25 +0000 2122) collectionBinder.setDeclaringClass( inferredData.getDeclaringClass() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2123) collectionBinder.bind(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2124) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2125) } +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2126) //Either a regular property or a basic @Id or @EmbeddedId while not ignoring id annotations +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2127) else if ( !isId || !entityBinder.isIgnoreIdAnnotations() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2128) //define whether the type is a component or not +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2129) +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2130) boolean isComponent = false; +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2131) +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2132) //Overrides from @MapsId if needed +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2133) boolean isOverridden = false; +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2134) if ( isId || propertyHolder.isOrWithinEmbeddedId() || propertyHolder.isInIdClass() ) { +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2135) //the associated entity could be using an @IdClass making the overridden property a component +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2136) final PropertyData overridingProperty = BinderHelper.getPropertyOverriddenByMapperOrMapsId( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2137) isId, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2138) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2139) property.getName(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2140) context +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2141) ); +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2142) if ( overridingProperty != null ) { +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2143) isOverridden = true; +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2144) final InheritanceState state = inheritanceStatePerClass.get( overridingProperty.getClassOrElement() ); +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2145) if ( state != null ) { +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2146) isComponent = isComponent || state.hasIdClassOrEmbeddedId(); +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2147) } +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2148) //Get the new column +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2149) columns = columnsBuilder.overrideColumnFromMapperOrMapsIdProperty( isId ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2150) } +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2151) } +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2152) +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2153) isComponent = isComponent +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2154) || property.isAnnotationPresent( Embedded.class ) +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2155) || property.isAnnotationPresent( EmbeddedId.class ) +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2156) || returnedClass.isAnnotationPresent( Embeddable.class ); +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2157) +5ad11ba2a annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 14:37:34 +0000 2158) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2159) if ( isComponent ) { +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2160) String referencedEntityName = null; +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2161) if ( isOverridden ) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2162) final PropertyData mapsIdProperty = BinderHelper.getPropertyOverriddenByMapperOrMapsId( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2163) isId, propertyHolder, property.getName(), context +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2164) ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2165) referencedEntityName = mapsIdProperty.getClassOrElementName(); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2166) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 2167) AccessType propertyAccessor = entityBinder.getPropertyAccessor( property ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2168) propertyBinder = bindComponent( +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2169) inferredData, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2170) propertyHolder, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2171) propertyAccessor, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2172) entityBinder, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2173) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2174) context, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2175) isComponentEmbedded, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2176) isId, +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2177) inheritanceStatePerClass, +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2178) referencedEntityName, +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2179) isOverridden ? ( Ejb3JoinColumn[] ) columns : null +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2180) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2181) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2182) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2183) //provide the basic property mapping +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2184) boolean optional = true; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2185) boolean lazy = false; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2186) if ( property.isAnnotationPresent( Basic.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2187) Basic ann = property.getAnnotation( Basic.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2188) optional = ann.optional(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2189) lazy = ann.fetch() == FetchType.LAZY; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2190) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2191) //implicit type will check basic types and Serializable classes +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2192) if ( isId || ( !optional && nullability != Nullability.FORCED_NULL ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2193) //force columns to not null +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2194) for ( Ejb3Column col : columns ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2195) col.forceNotNull(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2196) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2197) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2198) +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2199) propertyBinder.setLazy( lazy ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2200) propertyBinder.setColumns( columns ); +66072429f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:46:51 +0000 2201) if ( isOverridden ) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2202) final PropertyData mapsIdProperty = BinderHelper.getPropertyOverriddenByMapperOrMapsId( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2203) isId, propertyHolder, property.getName(), context +66072429f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:46:51 +0000 2204) ); +66072429f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:46:51 +0000 2205) propertyBinder.setReferencedEntityName( mapsIdProperty.getClassOrElementName() ); +66072429f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:46:51 +0000 2206) } +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2207) +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2208) propertyBinder.makePropertyValueAndBind(); +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2209) +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2210) } +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2211) if ( isOverridden ) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2212) final PropertyData mapsIdProperty = BinderHelper.getPropertyOverriddenByMapperOrMapsId( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2213) isId, propertyHolder, property.getName(), context +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2214) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2215) Map localGenerators = ( HashMap ) classGenerators.clone(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2216) final IdentifierGeneratorDefinition.Builder foreignGeneratorBuilder = new IdentifierGeneratorDefinition.Builder(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2217) foreignGeneratorBuilder.setName( "Hibernate-local--foreign generator" ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2218) foreignGeneratorBuilder.setStrategy( "foreign" ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2219) foreignGeneratorBuilder.addParam( "property", mapsIdProperty.getPropertyName() ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2220) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2221) final IdentifierGeneratorDefinition foreignGenerator = foreignGeneratorBuilder.build(); +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2222) localGenerators.put( foreignGenerator.getName(), foreignGenerator ); +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2223) +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2224) BinderHelper.makeIdGenerator( +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2225) ( SimpleValue ) propertyBinder.getValue(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2226) foreignGenerator.getStrategy(), +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2227) foreignGenerator.getName(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2228) context, +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2229) localGenerators +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2230) ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2231) } +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2232) if ( isId ) { +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2233) //components and regular basic types create SimpleValue objects +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2234) final SimpleValue value = ( SimpleValue ) propertyBinder.getValue(); +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2235) if ( !isOverridden ) { +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2236) processId( +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2237) propertyHolder, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2238) inferredData, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2239) value, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2240) classGenerators, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2241) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2242) context +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2243) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2244) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2245) } +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2246) } +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 2247) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2248) //init index +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2249) //process indexes after everything: in second pass, many to one has to be done before indexes +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2250) Index index = property.getAnnotation( Index.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2251) if ( index != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2252) if ( joinColumns != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2253) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2254) for ( Ejb3Column column : joinColumns ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2255) column.addIndex( index, inSecondPass ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2256) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2257) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2258) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2259) if ( columns != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2260) for ( Ejb3Column column : columns ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2261) column.addIndex( index, inSecondPass ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2262) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2263) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2264) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2265) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2266) +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2267) // Natural ID columns must reside in one single UniqueKey within the Table. +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2268) // For now, simply ensure consistent naming. +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2269) // TODO: AFAIK, there really isn't a reason for these UKs to be created +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2270) // on the secondPass. This whole area should go away... +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2271) NaturalId naturalIdAnn = property.getAnnotation( NaturalId.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2272) if ( naturalIdAnn != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2273) if ( joinColumns != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2274) for ( Ejb3Column column : joinColumns ) { +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2275) String keyName = "UK_" + Constraint.hashedName( column.getTable().getName() + "_NaturalID" ); +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2276) column.addUniqueKey( keyName, inSecondPass ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2277) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2278) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2279) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2280) for ( Ejb3Column column : columns ) { +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2281) String keyName = "UK_" + Constraint.hashedName( column.getTable().getName() + "_NaturalID" ); +9030fa015 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-05-03 21:24:44 +0000 2282) column.addUniqueKey( keyName, inSecondPass ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2283) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2284) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2285) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2286) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2287) +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2288) private static void setVersionInformation(XProperty property, PropertyBinder propertyBinder) { +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2289) propertyBinder.getSimpleValueBinder().setVersion( true ); +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2290) if(property.isAnnotationPresent( Source.class )) { +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2291) Source source = property.getAnnotation( Source.class ); +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2292) propertyBinder.getSimpleValueBinder().setTimestampVersionType( source.value().typeName() ); +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2293) } +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2294) } +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2295) +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2296) private static void processId( +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2297) PropertyHolder propertyHolder, +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2298) PropertyData inferredData, +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2299) SimpleValue idValue, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2300) HashMap classGenerators, +7c72886f6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 17:15:37 +0000 2301) boolean isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2302) MetadataBuildingContext buildingContext) { +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2303) if ( isIdentifierMapper ) { +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2304) throw new AnnotationException( +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2305) "@IdClass class should not have @Id nor @EmbeddedId properties: " +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2306) + BinderHelper.getPath( propertyHolder, inferredData ) +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2307) ); +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2308) } +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2309) XClass returnedClass = inferredData.getClassOrElement(); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2310) XProperty property = inferredData.getProperty(); +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2311) //clone classGenerator and override with local values +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2312) HashMap localGenerators = ( HashMap ) classGenerators.clone(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2313) localGenerators.putAll( buildLocalGenerators( property, buildingContext ) ); +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2314) +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2315) //manage composite related metadata +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2316) //guess if its a component and find id data access (property, field etc) +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2317) final boolean isComponent = returnedClass.isAnnotationPresent( Embeddable.class ) +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2318) || property.isAnnotationPresent( EmbeddedId.class ); +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2319) +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2320) GeneratedValue generatedValue = property.getAnnotation( GeneratedValue.class ); +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2321) String generatorType = generatedValue != null +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2322) ? generatorType( generatedValue.strategy(), buildingContext, returnedClass ) +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2323) : "assigned"; +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2324) String generatorName = generatedValue != null +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2325) ? generatedValue.generator() +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2326) : BinderHelper.ANNOTATION_STRING_DEFAULT; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2327) if ( isComponent ) { +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2328) //a component must not have any generator +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2329) generatorType = "assigned"; +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2330) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2331) BinderHelper.makeIdGenerator( idValue, generatorType, generatorName, buildingContext, localGenerators ); +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2332) +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 2333) if ( LOG.isTraceEnabled() ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 2334) LOG.tracev( "Bind {0} on {1}", ( isComponent ? "@EmbeddedId" : "@Id" ), inferredData.getPropertyName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 2335) } +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2336) } +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2337) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2338) //TODO move that to collection binder? +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2339) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2340) private static void bindJoinedTableAssociation( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2341) XProperty property, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2342) MetadataBuildingContext buildingContext, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2343) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2344) CollectionBinder collectionBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2345) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2346) PropertyData inferredData, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2347) String mappedBy) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2348) TableBinder associationTableBinder = new TableBinder(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2349) JoinColumn[] annJoins; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2350) JoinColumn[] annInverseJoins; +b1f925458 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-12 18:48:42 +0000 2351) JoinTable assocTable = propertyHolder.getJoinTable( property ); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2352) CollectionTable collectionTable = property.getAnnotation( CollectionTable.class ); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2353) if ( assocTable != null || collectionTable != null ) { +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2354) +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2355) final String catalog; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2356) final String schema; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2357) final String tableName; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2358) final UniqueConstraint[] uniqueConstraints; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2359) final JoinColumn[] joins; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2360) final JoinColumn[] inverseJoins; +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2361) final javax.persistence.Index[] jpaIndexes; +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2362) +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2363) +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2364) //JPA 2 has priority +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2365) if ( collectionTable != null ) { +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2366) catalog = collectionTable.catalog(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2367) schema = collectionTable.schema(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2368) tableName = collectionTable.name(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2369) uniqueConstraints = collectionTable.uniqueConstraints(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2370) joins = collectionTable.joinColumns(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2371) inverseJoins = null; +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2372) jpaIndexes = collectionTable.indexes(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2373) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2374) else { +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2375) catalog = assocTable.catalog(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2376) schema = assocTable.schema(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2377) tableName = assocTable.name(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2378) uniqueConstraints = assocTable.uniqueConstraints(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2379) joins = assocTable.joinColumns(); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2380) inverseJoins = assocTable.inverseJoinColumns(); +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2381) jpaIndexes = assocTable.indexes(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2382) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2383) +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2384) collectionBinder.setExplicitAssociationTable( true ); +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2385) if ( jpaIndexes != null && jpaIndexes.length > 0 ) { +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2386) associationTableBinder.setJpaIndex( jpaIndexes ); +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2387) } +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2388) if ( !BinderHelper.isEmptyAnnotationValue( schema ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2389) associationTableBinder.setSchema( schema ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2390) } +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2391) if ( !BinderHelper.isEmptyAnnotationValue( catalog ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2392) associationTableBinder.setCatalog( catalog ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2393) } +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 2394) if ( !BinderHelper.isEmptyAnnotationValue( tableName ) ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2395) associationTableBinder.setName( tableName ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2396) } +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2397) associationTableBinder.setUniqueConstraints( uniqueConstraints ); +3335710a3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2013-02-27 16:20:51 +0000 2398) associationTableBinder.setJpaIndex( jpaIndexes ); +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2399) //set check constaint in the second pass +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2400) annJoins = joins.length == 0 ? null : joins; +d9a1022f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-07-20 23:24:38 +0000 2401) annInverseJoins = inverseJoins == null || inverseJoins.length == 0 ? null : inverseJoins; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2402) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2403) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2404) annJoins = null; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2405) annInverseJoins = null; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2406) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2407) Ejb3JoinColumn[] joinColumns = Ejb3JoinColumn.buildJoinTableJoinColumns( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2408) annJoins, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2409) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2410) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2411) inferredData.getPropertyName(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2412) mappedBy, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2413) buildingContext +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2414) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2415) Ejb3JoinColumn[] inverseJoinColumns = Ejb3JoinColumn.buildJoinTableJoinColumns( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2416) annInverseJoins, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2417) entityBinder.getSecondaryTables(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2418) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2419) inferredData.getPropertyName(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2420) mappedBy, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2421) buildingContext +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2422) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2423) associationTableBinder.setBuildingContext( buildingContext ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2424) collectionBinder.setTableBinder( associationTableBinder ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2425) collectionBinder.setJoinColumns( joinColumns ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2426) collectionBinder.setInverseJoinColumns( inverseJoinColumns ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2427) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2428) +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2429) private static PropertyBinder bindComponent( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2430) PropertyData inferredData, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2431) PropertyHolder propertyHolder, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2432) AccessType propertyAccessor, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2433) EntityBinder entityBinder, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2434) boolean isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2435) MetadataBuildingContext buildingContext, +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2436) boolean isComponentEmbedded, +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2437) boolean isId, //is a identifier +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2438) Map inheritanceStatePerClass, +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2439) String referencedEntityName, //is a component who is overridden by a @MapsId +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2440) Ejb3JoinColumn[] columns) { +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2441) Component comp; +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2442) if ( referencedEntityName != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2443) comp = createComponent( propertyHolder, inferredData, isComponentEmbedded, isIdentifierMapper, buildingContext ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2444) SecondPass sp = new CopyIdentifierComponentSecondPass( +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2445) comp, +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2446) referencedEntityName, +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2447) columns, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2448) buildingContext +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2449) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2450) buildingContext.getMetadataCollector().addSecondPass( sp ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2451) } +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2452) else { +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2453) comp = fillComponent( +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2454) propertyHolder, inferredData, propertyAccessor, !isId, entityBinder, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2455) isComponentEmbedded, isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2456) false, buildingContext, inheritanceStatePerClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2457) ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2458) } +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2459) if ( isId ) { +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2460) comp.setKey( true ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2461) if ( propertyHolder.getPersistentClass().getIdentifier() != null ) { +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2462) throw new AnnotationException( +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2463) comp.getComponentClassName() +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2464) + " must not have @Id properties when used as an @EmbeddedId: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2465) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2466) ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2467) } +9f85525e4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 13:26:07 +0000 2468) if ( referencedEntityName == null && comp.getPropertySpan() == 0 ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2469) throw new AnnotationException( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2470) comp.getComponentClassName() +9f85525e4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 13:26:07 +0000 2471) + " has no persistent id property: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2472) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2473) ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2474) } +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2475) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2476) XProperty property = inferredData.getProperty(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2477) setupComponentTuplizer( property, comp ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2478) PropertyBinder binder = new PropertyBinder(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2479) binder.setName( inferredData.getPropertyName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2480) binder.setValue( comp ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2481) binder.setProperty( inferredData.getProperty() ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 2482) binder.setAccessType( inferredData.getDefaultAccess() ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2483) binder.setEmbedded( isComponentEmbedded ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2484) binder.setHolder( propertyHolder ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2485) binder.setId( isId ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2486) binder.setEntityBinder( entityBinder ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2487) binder.setInheritanceStatePerClass( inheritanceStatePerClass ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2488) binder.setBuildingContext( buildingContext ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2489) binder.makePropertyAndBind(); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2490) return binder; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2491) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2492) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2493) public static Component fillComponent( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2494) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2495) PropertyData inferredData, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2496) AccessType propertyAccessor, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2497) boolean isNullable, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2498) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2499) boolean isComponentEmbedded, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2500) boolean isIdentifierMapper, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2501) boolean inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2502) MetadataBuildingContext buildingContext, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2503) Map inheritanceStatePerClass) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2504) return fillComponent( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2505) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2506) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2507) null, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2508) propertyAccessor, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2509) isNullable, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2510) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2511) isComponentEmbedded, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2512) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2513) inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2514) buildingContext, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2515) inheritanceStatePerClass +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2516) ); +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2517) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2518) +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2519) public static Component fillComponent( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2520) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2521) PropertyData inferredData, +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2522) PropertyData baseInferredData, //base inferred data correspond to the entity reproducing inferredData's properties (ie IdClass) +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2523) AccessType propertyAccessor, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2524) boolean isNullable, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2525) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2526) boolean isComponentEmbedded, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2527) boolean isIdentifierMapper, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2528) boolean inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2529) MetadataBuildingContext buildingContext, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2530) Map inheritanceStatePerClass) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2531) /** +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2532) * inSecondPass can only be used to apply right away the second pass of a composite-element +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2533) * Because it's a value type, there is no bidirectional association, hence second pass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2534) * ordering does not matter +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2535) */ +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2536) Component comp = createComponent( propertyHolder, inferredData, isComponentEmbedded, isIdentifierMapper, buildingContext ); +174a568f8 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 13:16:05 +0000 2537) String subpath = BinderHelper.getPath( propertyHolder, inferredData ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 2538) LOG.tracev( "Binding component with path: {0}", subpath ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2539) PropertyHolder subHolder = PropertyHolderBuilder.buildPropertyHolder( +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2540) comp, +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2541) subpath, +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2542) inferredData, +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2543) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2544) buildingContext +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2545) ); +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2546) +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2547) +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2548) // propertyHolder here is the owner of the component property. Tell it we are about to start the component... +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2549) +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2550) propertyHolder.startingProperty( inferredData.getProperty() ); +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2551) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2552) final XClass xClassProcessed = inferredData.getPropertyClass(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2553) List classElements = new ArrayList(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2554) XClass returnedClassOrElement = inferredData.getClassOrElement(); +8cc9e9d5f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:43:48 +0000 2555) +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2556) List baseClassElements = null; +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2557) Map orderedBaseClassElements = new HashMap(); +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2558) XClass baseReturnedClassOrElement; +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2559) if ( baseInferredData != null ) { +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2560) baseClassElements = new ArrayList(); +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2561) baseReturnedClassOrElement = baseInferredData.getClassOrElement(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2562) bindTypeDefs( baseReturnedClassOrElement, buildingContext ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2563) PropertyContainer propContainer = new PropertyContainer( baseReturnedClassOrElement, xClassProcessed ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2564) addElementsOfClass( baseClassElements, propertyAccessor, propContainer, buildingContext ); +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2565) for ( PropertyData element : baseClassElements ) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2566) orderedBaseClassElements.put( element.getPropertyName(), element ); +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2567) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2568) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2569) +8cc9e9d5f annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-09-22 17:43:48 +0000 2570) //embeddable elements can have type defs +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2571) bindTypeDefs( returnedClassOrElement, buildingContext ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2572) PropertyContainer propContainer = new PropertyContainer( returnedClassOrElement, xClassProcessed ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2573) addElementsOfClass( classElements, propertyAccessor, propContainer, buildingContext ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 2574) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2575) //add elements of the embeddable superclass +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2576) XClass superClass = xClassProcessed.getSuperclass(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2577) while ( superClass != null && superClass.isAnnotationPresent( MappedSuperclass.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2578) //FIXME: proper support of typevariables incl var resolved at upper levels +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2579) propContainer = new PropertyContainer( superClass, xClassProcessed ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2580) addElementsOfClass( classElements, propertyAccessor, propContainer, buildingContext ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2581) superClass = superClass.getSuperclass(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2582) } +c7c6981a5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-28 18:14:25 +0000 2583) if ( baseClassElements != null ) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2584) //useful to avoid breaking pre JPA 2 mappings +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2585) if ( !hasAnnotationsOnIdClass( xClassProcessed ) ) { +c7c6981a5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-28 18:14:25 +0000 2586) for ( int i = 0; i < classElements.size(); i++ ) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2587) final PropertyData idClassPropertyData = classElements.get( i ); +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2588) final PropertyData entityPropertyData = orderedBaseClassElements.get( idClassPropertyData.getPropertyName() ); +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2589) if ( propertyHolder.isInIdClass() ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2590) if ( entityPropertyData == null ) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2591) throw new AnnotationException( +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2592) "Property of @IdClass not found in entity " +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2593) + baseInferredData.getPropertyClass().getName() + ": " +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2594) + idClassPropertyData.getPropertyName() +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2595) ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2596) } +737379690 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 19:14:29 +0000 2597) final boolean hasXToOneAnnotation = entityPropertyData.getProperty() +737379690 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 19:14:29 +0000 2598) .isAnnotationPresent( ManyToOne.class ) +737379690 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 19:14:29 +0000 2599) || entityPropertyData.getProperty().isAnnotationPresent( OneToOne.class ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2600) final boolean isOfDifferentType = !entityPropertyData.getClassOrElement() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2601) .equals( idClassPropertyData.getClassOrElement() ); +737379690 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 19:14:29 +0000 2602) if ( hasXToOneAnnotation && isOfDifferentType ) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2603) //don't replace here as we need to use the actual original return type +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2604) //the annotation overriding will be dealt with by a mechanism similar to @MapsId +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2605) } +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2606) else { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2607) classElements.set( i, entityPropertyData ); //this works since they are in the same order +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2608) } +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2609) } +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2610) else { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2611) classElements.set( i, entityPropertyData ); //this works since they are in the same order +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2612) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2613) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2614) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2615) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2616) for ( PropertyData propertyAnnotatedElement : classElements ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2617) processElementAnnotations( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2618) subHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2619) isNullable +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2620) ? Nullability.NO_CONSTRAINT +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2621) : Nullability.FORCED_NOT_NULL, +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2622) propertyAnnotatedElement, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2623) new HashMap(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2624) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2625) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2626) isComponentEmbedded, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2627) inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2628) buildingContext, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2629) inheritanceStatePerClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2630) ); +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2631) +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2632) XProperty property = propertyAnnotatedElement.getProperty(); +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2633) if ( property.isAnnotationPresent( GeneratedValue.class ) && +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 2634) property.isAnnotationPresent( Id.class ) ) { +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2635) //clone classGenerator and override with local values +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2636) Map localGenerators = new HashMap(); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2637) localGenerators.putAll( buildLocalGenerators( property, buildingContext ) ); +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2638) +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2639) GeneratedValue generatedValue = property.getAnnotation( GeneratedValue.class ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2640) String generatorType = generatedValue != null +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 2641) ? generatorType( generatedValue.strategy(), buildingContext, property.getType() ) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2642) : "assigned"; +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2643) String generator = generatedValue != null ? generatedValue.generator() : BinderHelper.ANNOTATION_STRING_DEFAULT; +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2644) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2645) BinderHelper.makeIdGenerator( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2646) ( SimpleValue ) comp.getProperty( property.getName() ).getValue(), +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2647) generatorType, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2648) generator, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2649) buildingContext, +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2650) localGenerators +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2651) ); +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2652) } +2adcb4d92 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Ståle W. Pedersen 2010-01-26 13:39:26 +0000 2653) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2654) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2655) return comp; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2656) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2657) +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2658) public static Component createComponent( +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2659) PropertyHolder propertyHolder, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2660) PropertyData inferredData, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2661) boolean isComponentEmbedded, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2662) boolean isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2663) MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2664) Component comp = new Component( context.getMetadataCollector(), propertyHolder.getPersistentClass() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2665) comp.setEmbedded( isComponentEmbedded ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2666) //yuk +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2667) comp.setTable( propertyHolder.getTable() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2668) //FIXME shouldn't identifier mapper use getClassOrElementName? Need to be checked. +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2669) if ( isIdentifierMapper || ( isComponentEmbedded && inferredData.getPropertyName() == null ) ) { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2670) comp.setComponentClassName( comp.getOwner().getClassName() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2671) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2672) else { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2673) comp.setComponentClassName( inferredData.getClassOrElementName() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2674) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2675) comp.setNodeName( inferredData.getPropertyName() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2676) return comp; +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2677) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2678) +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2679) private static void bindIdClass( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2680) String generatorType, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2681) String generatorName, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2682) PropertyData inferredData, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2683) PropertyData baseInferredData, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2684) Ejb3Column[] columns, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2685) PropertyHolder propertyHolder, +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2686) boolean isComposite, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2687) AccessType propertyAccessor, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2688) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2689) boolean isEmbedded, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2690) boolean isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2691) MetadataBuildingContext buildingContext, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2692) Map inheritanceStatePerClass) { +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 2693) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2694) /* +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2695) * Fill simple value and property since and Id is a property +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2696) */ +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2697) PersistentClass persistentClass = propertyHolder.getPersistentClass(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2698) if ( !( persistentClass instanceof RootClass ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2699) throw new AnnotationException( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2700) "Unable to define/override @Id(s) on a subclass: " +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2701) + propertyHolder.getEntityName() +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2702) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2703) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2704) RootClass rootClass = ( RootClass ) persistentClass; +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 2705) String persistentClassName = rootClass.getClassName(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2706) SimpleValue id; +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 2707) final String propertyName = inferredData.getPropertyName(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2708) HashMap localGenerators = new HashMap(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2709) if ( isComposite ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2710) id = fillComponent( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2711) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2712) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2713) baseInferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2714) propertyAccessor, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2715) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2716) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2717) isEmbedded, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2718) isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2719) false, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2720) buildingContext, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2721) inheritanceStatePerClass +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2722) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2723) Component componentId = ( Component ) id; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2724) componentId.setKey( true ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2725) if ( rootClass.getIdentifier() != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2726) throw new AnnotationException( componentId.getComponentClassName() + " must not have @Id properties when used as an @EmbeddedId" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2727) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2728) if ( componentId.getPropertySpan() == 0 ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2729) throw new AnnotationException( componentId.getComponentClassName() + " has no persistent id property" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2730) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2731) //tuplizers +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2732) XProperty property = inferredData.getProperty(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2733) setupComponentTuplizer( property, componentId ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2734) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2735) else { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2736) //TODO I think this branch is never used. Remove. +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2737) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2738) for ( Ejb3Column column : columns ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2739) column.forceNotNull(); //this is an id +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2740) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2741) SimpleValueBinder value = new SimpleValueBinder(); +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 2742) value.setPropertyName( propertyName ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2743) value.setReturnedClassName( inferredData.getTypeName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2744) value.setColumns( columns ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2745) value.setPersistentClassName( persistentClassName ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2746) value.setBuildingContext( buildingContext ); +1f6daa678 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2013-09-06 03:30:52 +0000 2747) value.setType( inferredData.getProperty(), inferredData.getClassOrElement(), persistentClassName, null ); +d0e13b664 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2012-08-07 07:08:23 +0000 2748) value.setAccessType( propertyAccessor ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2749) id = value.make(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2750) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2751) rootClass.setIdentifier( id ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2752) BinderHelper.makeIdGenerator( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2753) id, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2754) generatorType, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2755) generatorName, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2756) buildingContext, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2757) Collections.emptyMap() +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2758) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2759) if ( isEmbedded ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2760) rootClass.setEmbeddedIdentifier( inferredData.getPropertyClass() == null ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2761) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2762) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2763) PropertyBinder binder = new PropertyBinder(); +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 2764) binder.setName( propertyName ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2765) binder.setValue( id ); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 2766) binder.setAccessType( inferredData.getDefaultAccess() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2767) binder.setProperty( inferredData.getProperty() ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 2768) Property prop = binder.makeProperty(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2769) rootClass.setIdentifierProperty( prop ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2770) //if the id property is on a superclass, update the metamodel +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2771) final org.hibernate.mapping.MappedSuperclass superclass = BinderHelper.getMappedSuperclassOrNull( +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2772) inferredData.getDeclaringClass(), +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2773) inheritanceStatePerClass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2774) buildingContext +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2775) ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2776) if ( superclass != null ) { +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2777) superclass.setDeclaredIdentifierProperty( prop ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2778) } +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2779) else { +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2780) //we know the property is on the actual entity +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2781) rootClass.setDeclaredIdentifierProperty( prop ); +fb9bdb7f3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-29 18:57:24 +0000 2782) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2783) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2784) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2785) +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2786) private static PropertyData getUniqueIdPropertyFromBaseClass( +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2787) PropertyData inferredData, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2788) PropertyData baseInferredData, +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2789) AccessType propertyAccessor, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2790) MetadataBuildingContext context) { +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2791) List baseClassElements = new ArrayList(); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2792) XClass baseReturnedClassOrElement = baseInferredData.getClassOrElement(); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2793) PropertyContainer propContainer = new PropertyContainer( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2794) baseReturnedClassOrElement, inferredData.getPropertyClass() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2795) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2796) addElementsOfClass( baseClassElements, propertyAccessor, propContainer, context ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2797) //Id properties are on top and there is only one +421789ddc annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-05-01 18:20:26 +0000 2798) return baseClassElements.get( 0 ); +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2799) } +8478d5b44 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-05 23:33:28 +0000 2800) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2801) private static void setupComponentTuplizer(XProperty property, Component component) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2802) if ( property == null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2803) return; +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2804) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2805) if ( property.isAnnotationPresent( Tuplizers.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2806) for ( Tuplizer tuplizer : property.getAnnotation( Tuplizers.class ).value() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2807) EntityMode mode = EntityMode.parse( tuplizer.entityMode() ); +72aedc868 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2011-06-06 16:16:33 +0000 2808) //todo tuplizer.entityModeType +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2809) component.addTuplizer( mode, tuplizer.impl().getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2810) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2811) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2812) if ( property.isAnnotationPresent( Tuplizer.class ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2813) Tuplizer tuplizer = property.getAnnotation( Tuplizer.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2814) EntityMode mode = EntityMode.parse( tuplizer.entityMode() ); +72aedc868 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Strong Liu 2011-06-06 16:16:33 +0000 2815) //todo tuplizer.entityModeType +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2816) component.addTuplizer( mode, tuplizer.impl().getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2817) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2818) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2819) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2820) private static void bindManyToOne( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2821) String cascadeStrategy, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2822) Ejb3JoinColumn[] columns, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2823) boolean optional, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2824) boolean ignoreNotFound, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2825) boolean cascadeOnDelete, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2826) XClass targetEntity, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2827) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2828) PropertyData inferredData, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2829) boolean unique, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2830) boolean isIdentifierMapper, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 2831) boolean inSecondPass, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2832) PropertyBinder propertyBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2833) MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2834) //All FK columns should be in the same table +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2835) org.hibernate.mapping.ManyToOne value = new org.hibernate.mapping.ManyToOne( context.getMetadataCollector(), columns[0].getTable() ); +63d5a9785 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2010-01-19 15:43:00 +0000 2836) // This is a @OneToOne mapped to a physical o.h.mapping.ManyToOne +63d5a9785 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2010-01-19 15:43:00 +0000 2837) if ( unique ) { +63d5a9785 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2010-01-19 15:43:00 +0000 2838) value.markAsLogicalOneToOne(); +63d5a9785 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2010-01-19 15:43:00 +0000 2839) } +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2840) value.setReferencedEntityName( ToOneBinder.getReferenceEntityName( inferredData, targetEntity, context ) ); +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2841) final XProperty property = inferredData.getProperty(); +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2842) defineFetchingStrategy( value, property ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2843) //value.setFetchMode( fetchMode ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2844) value.setIgnoreNotFound( ignoreNotFound ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2845) value.setCascadeDeleteEnabled( cascadeOnDelete ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2846) //value.setLazy( fetchMode != FetchMode.JOIN ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2847) if ( !optional ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2848) for ( Ejb3JoinColumn column : columns ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2849) column.setNullable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2850) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2851) } +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2852) if ( property.isAnnotationPresent( MapsId.class ) ) { +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2853) //read only +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2854) for ( Ejb3JoinColumn column : columns ) { +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2855) column.setInsertable( false ); +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2856) column.setUpdatable( false ); +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2857) } +fd389b913 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 16:51:02 +0000 2858) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2859) +1811b48f7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-12-09 20:14:56 +0000 2860) final JoinColumn joinColumn = property.getAnnotation( JoinColumn.class ); +1811b48f7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-12-09 20:14:56 +0000 2861) +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2862) //Make sure that JPA1 key-many-to-one columns are read only tooj +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2863) boolean hasSpecjManyToOne=false; +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2864) if ( context.getBuildingOptions().isSpecjProprietarySyntaxEnabled() ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2865) String columnName = ""; +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2866) for ( XProperty prop : inferredData.getDeclaringClass() +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2867) .getDeclaredProperties( AccessType.FIELD.getType() ) ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2868) if ( prop.isAnnotationPresent( Id.class ) && prop.isAnnotationPresent( Column.class ) ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2869) columnName = prop.getAnnotation( Column.class ).name(); +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2870) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2871) +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2872) if ( property.isAnnotationPresent( ManyToOne.class ) && joinColumn != null +59ec34d5b core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 14:05:41 +0000 2873) && ! BinderHelper.isEmptyAnnotationValue( joinColumn.name() ) +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2874) && joinColumn.name().equals( columnName ) +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2875) && !property.isAnnotationPresent( MapsId.class ) ) { +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2876) hasSpecjManyToOne = true; +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2877) for ( Ejb3JoinColumn column : columns ) { +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2878) column.setInsertable( false ); +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2879) column.setUpdatable( false ); +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2880) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2881) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2882) } +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2883) +368457612 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:44:12 +0000 2884) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2885) value.setTypeName( inferredData.getClassOrElementName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2886) final String propertyName = inferredData.getPropertyName(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2887) value.setTypeUsingReflection( propertyHolder.getClassName(), propertyName ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2888) +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2889) if ( joinColumn != null +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2890) && joinColumn.foreignKey().value() == ConstraintMode.NO_CONSTRAINT ) { +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2891) // not ideal... +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2892) value.setForeignKeyName( "none" ); +1811b48f7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-12-09 20:14:56 +0000 2893) } +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2894) else { +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2895) final ForeignKey fk = property.getAnnotation( ForeignKey.class ); +b7273d93a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:14:40 +0000 2896) if ( fk != null && StringHelper.isNotEmpty( fk.name() ) ) { +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2897) value.setForeignKeyName( fk.name() ); +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2898) } +22ca7125f hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:02:23 +0000 2899) else if ( joinColumn != null ) { +b7273d93a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-04-02 22:14:40 +0000 2900) value.setForeignKeyName( StringHelper.nullIfEmpty( joinColumn.foreignKey().name() ) ); +1811b48f7 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-12-09 20:14:56 +0000 2901) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 2902) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2903) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2904) String path = propertyHolder.getPath() + "." + propertyName; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2905) FkSecondPass secondPass = new ToOneFkSecondPass( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2906) value, columns, +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 2907) !optional && unique, //cannot have nullable and unique on certain DBs like Derby +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2908) propertyHolder.getEntityOwnerClassName(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2909) path, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2910) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2911) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2912) if ( inSecondPass ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2913) secondPass.doSecondPass( context.getMetadataCollector().getEntityBindingMap() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2914) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2915) else { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 2916) context.getMetadataCollector().addSecondPass( secondPass ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2917) } +32b93b978 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Brett Meyer 2013-10-31 09:22:05 +0000 2918) Ejb3Column.checkPropertyConsistency( columns, propertyHolder.getEntityName() + "." + propertyName ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2919) //PropertyBinder binder = new PropertyBinder(); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2920) propertyBinder.setName( propertyName ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2921) propertyBinder.setValue( value ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2922) //binder.setCascade(cascadeStrategy); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2923) if ( isIdentifierMapper ) { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2924) propertyBinder.setInsertable( false ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2925) propertyBinder.setUpdatable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2926) } +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2927) else if (hasSpecjManyToOne) { +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2928) propertyBinder.setInsertable( false ); +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2929) propertyBinder.setUpdatable( false ); +3b3c8bc92 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-10-04 09:45:09 +0000 2930) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2931) else { +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2932) propertyBinder.setInsertable( columns[0].isInsertable() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2933) propertyBinder.setUpdatable( columns[0].isUpdatable() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2934) } +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2935) propertyBinder.setColumns( columns ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2936) propertyBinder.setAccessType( inferredData.getDefaultAccess() ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2937) propertyBinder.setCascade( cascadeStrategy ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2938) propertyBinder.setProperty( property ); +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 2939) propertyBinder.setXToMany( true ); +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 2940) propertyBinder.makePropertyAndBind(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2941) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2942) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2943) protected static void defineFetchingStrategy(ToOne toOne, XProperty property) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2944) LazyToOne lazy = property.getAnnotation( LazyToOne.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2945) Fetch fetch = property.getAnnotation( Fetch.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2946) ManyToOne manyToOne = property.getAnnotation( ManyToOne.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2947) OneToOne oneToOne = property.getAnnotation( OneToOne.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2948) FetchType fetchType; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2949) if ( manyToOne != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2950) fetchType = manyToOne.fetch(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2951) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2952) else if ( oneToOne != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2953) fetchType = oneToOne.fetch(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2954) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2955) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2956) throw new AssertionFailure( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2957) "Define fetch strategy on a property not annotated with @OneToMany nor @OneToOne" +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2958) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2959) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2960) if ( lazy != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2961) toOne.setLazy( !( lazy.value() == LazyToOneOption.FALSE ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2962) toOne.setUnwrapProxy( ( lazy.value() == LazyToOneOption.NO_PROXY ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2963) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2964) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2965) toOne.setLazy( fetchType == FetchType.LAZY ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2966) toOne.setUnwrapProxy( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2967) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2968) if ( fetch != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2969) if ( fetch.value() == org.hibernate.annotations.FetchMode.JOIN ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2970) toOne.setFetchMode( FetchMode.JOIN ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2971) toOne.setLazy( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2972) toOne.setUnwrapProxy( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2973) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2974) else if ( fetch.value() == org.hibernate.annotations.FetchMode.SELECT ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2975) toOne.setFetchMode( FetchMode.SELECT ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2976) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2977) else if ( fetch.value() == org.hibernate.annotations.FetchMode.SUBSELECT ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2978) throw new AnnotationException( "Use of FetchMode.SUBSELECT not allowed on ToOne associations" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2979) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2980) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2981) throw new AssertionFailure( "Unknown FetchMode: " + fetch.value() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2982) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2983) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2984) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2985) toOne.setFetchMode( getFetchMode( fetchType ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2986) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2987) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2988) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2989) private static void bindOneToOne( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2990) String cascadeStrategy, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2991) Ejb3JoinColumn[] joinColumns, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2992) boolean optional, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2993) FetchMode fetchMode, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2994) boolean ignoreNotFound, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2995) boolean cascadeOnDelete, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2996) XClass targetEntity, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 2997) PropertyHolder propertyHolder, +e26b8be6a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-06-01 16:59:42 +0000 2998) PropertyData inferredData, +e26b8be6a hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2012-06-01 16:59:42 +0000 2999) String mappedBy, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3000) boolean trueOneToOne, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 3001) boolean isIdentifierMapper, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 3002) boolean inSecondPass, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 3003) PropertyBinder propertyBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3004) MetadataBuildingContext context) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3005) //column.getTable() => persistentClass.getTable() +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3006) final String propertyName = inferredData.getPropertyName(); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 3007) LOG.tracev( "Fetching {0} with {1}", propertyName, fetchMode ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3008) boolean mapToPK = true; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3009) if ( !trueOneToOne ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3010) //try to find a hidden true one to one (FK == PK columns) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3011) KeyValue identifier = propertyHolder.getIdentifier(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3012) if ( identifier == null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3013) //this is a @OneToOne in a @EmbeddedId (the persistentClass.identifier is not set yet, it's being built) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3014) //by definition the PK cannot refers to itself so it cannot map to itself +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3015) mapToPK = false; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3016) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3017) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3018) Iterator idColumns = identifier.getColumnIterator(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3019) List idColumnNames = new ArrayList(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3020) org.hibernate.mapping.Column currentColumn; +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3021) if ( identifier.getColumnSpan() != joinColumns.length ) { +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3022) mapToPK = false; +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3023) } +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3024) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3025) while ( idColumns.hasNext() ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3026) currentColumn = ( org.hibernate.mapping.Column ) idColumns.next(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3027) idColumnNames.add( currentColumn.getName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3028) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3029) for ( Ejb3JoinColumn col : joinColumns ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3030) if ( !idColumnNames.contains( col.getMappingColumn().getName() ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3031) mapToPK = false; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3032) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3033) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3034) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3035) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3036) } +cd3c152f4 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-20 11:48:08 +0000 3037) } +e14f58de2 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-09-28 16:28:30 +0000 3038) if ( trueOneToOne || mapToPK || !BinderHelper.isEmptyAnnotationValue( mappedBy ) ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3039) //is a true one-to-one +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3040) //FIXME referencedColumnName ignored => ordering may fail. +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3041) OneToOneSecondPass secondPass = new OneToOneSecondPass( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3042) mappedBy, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3043) propertyHolder.getEntityName(), +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3044) propertyName, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3045) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3046) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3047) targetEntity, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3048) ignoreNotFound, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3049) cascadeOnDelete, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3050) optional, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3051) cascadeStrategy, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3052) joinColumns, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3053) context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3054) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3055) if ( inSecondPass ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3056) secondPass.doSecondPass( context.getMetadataCollector().getEntityBindingMap() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3057) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3058) else { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3059) context.getMetadataCollector().addSecondPass( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3060) secondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3061) BinderHelper.isEmptyAnnotationValue( mappedBy ) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3062) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3063) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3064) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3065) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3066) //has a FK on the table +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3067) bindManyToOne( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3068) cascadeStrategy, joinColumns, optional, ignoreNotFound, cascadeOnDelete, +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3069) targetEntity, +d00f7efb3 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-25 17:19:05 +0000 3070) propertyHolder, inferredData, true, isIdentifierMapper, inSecondPass, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3071) propertyBinder, context +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3072) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3073) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3074) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3075) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3076) private static void bindAny( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3077) String cascadeStrategy, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3078) Ejb3JoinColumn[] columns, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3079) boolean cascadeOnDelete, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3080) Nullability nullability, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3081) PropertyHolder propertyHolder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3082) PropertyData inferredData, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3083) EntityBinder entityBinder, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3084) boolean isIdentifierMapper, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3085) MetadataBuildingContext buildingContext) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3086) org.hibernate.annotations.Any anyAnn = inferredData.getProperty() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3087) .getAnnotation( org.hibernate.annotations.Any.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3088) if ( anyAnn == null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3089) throw new AssertionFailure( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3090) "Missing @Any annotation: " +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3091) + BinderHelper.getPath( propertyHolder, inferredData ) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3092) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3093) } +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3094) Any value = BinderHelper.buildAnyValue( +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3095) anyAnn.metaDef(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3096) columns, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3097) anyAnn.metaColumn(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3098) inferredData, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3099) cascadeOnDelete, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3100) nullability, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3101) propertyHolder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3102) entityBinder, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3103) anyAnn.optional(), +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3104) buildingContext +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3105) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3106) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3107) PropertyBinder binder = new PropertyBinder(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3108) binder.setName( inferredData.getPropertyName() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3109) binder.setValue( value ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3110) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3111) binder.setLazy( anyAnn.fetch() == FetchType.LAZY ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3112) //binder.setCascade(cascadeStrategy); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3113) if ( isIdentifierMapper ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3114) binder.setInsertable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3115) binder.setUpdatable( false ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3116) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3117) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3118) binder.setInsertable( columns[0].isInsertable() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3119) binder.setUpdatable( columns[0].isUpdatable() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3120) } +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 3121) binder.setAccessType( inferredData.getDefaultAccess() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3122) binder.setCascade( cascadeStrategy ); +8577a68e6 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-21 17:51:09 +0000 3123) Property prop = binder.makeProperty(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3124) //composite FK columns are in the same table so its OK +c7c6981a5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-10-28 18:14:25 +0000 3125) propertyHolder.addProperty( prop, columns, inferredData.getDeclaringClass() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3126) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3127) +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 3128) private static String generatorType( +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 3129) GenerationType generatorEnum, +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3130) final MetadataBuildingContext buildingContext, +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3131) final XClass javaTypeXClass) { +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3132) return buildingContext.getBuildingOptions().getIdGenerationTypeInterpreter().determineGeneratorName( +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3133) generatorEnum, +1f50efa34 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-27 03:53:27 +0000 3134) new IdGeneratorStrategyInterpreter.GeneratorNameDeterminationContext() { +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3135) Class javaType = null; +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3136) @Override +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3137) public Class getIdType() { +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3138) if ( javaType == null ) { +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3139) javaType = buildingContext.getBuildingOptions() +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 3140) .getReflectionManager() +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 3141) .toClass( javaTypeXClass ); +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 3142) } +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3143) return javaType; +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 3144) } +7a1c15509 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-21 19:45:44 +0000 3145) } +5d365cfa0 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-26 21:18:40 +0000 3146) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3147) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3148) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3149) private static EnumSet convertToHibernateCascadeType(javax.persistence.CascadeType[] ejbCascades) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3150) EnumSet hibernateCascadeSet = EnumSet.noneOf( CascadeType.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3151) if ( ejbCascades != null && ejbCascades.length > 0 ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3152) for ( javax.persistence.CascadeType cascade : ejbCascades ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3153) switch ( cascade ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3154) case ALL: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3155) hibernateCascadeSet.add( CascadeType.ALL ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3156) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3157) case PERSIST: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3158) hibernateCascadeSet.add( CascadeType.PERSIST ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3159) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3160) case MERGE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3161) hibernateCascadeSet.add( CascadeType.MERGE ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3162) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3163) case REMOVE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3164) hibernateCascadeSet.add( CascadeType.REMOVE ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3165) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3166) case REFRESH: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3167) hibernateCascadeSet.add( CascadeType.REFRESH ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3168) break; +ba3639a25 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-12-10 09:32:25 +0000 3169) case DETACH: +ba3639a25 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-12-10 09:32:25 +0000 3170) hibernateCascadeSet.add( CascadeType.DETACH ); +ba3639a25 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-12-10 09:32:25 +0000 3171) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3172) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3173) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3174) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3175) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3176) return hibernateCascadeSet; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3177) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3178) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3179) private static String getCascadeStrategy( +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3180) javax.persistence.CascadeType[] ejbCascades, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3181) Cascade hibernateCascadeAnnotation, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3182) boolean orphanRemoval, +f0f82e4f1 core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2010-08-12 19:13:48 +0000 3183) boolean forcePersist) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3184) EnumSet hibernateCascadeSet = convertToHibernateCascadeType( ejbCascades ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3185) CascadeType[] hibernateCascades = hibernateCascadeAnnotation == null ? +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3186) null : +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3187) hibernateCascadeAnnotation.value(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3188) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3189) if ( hibernateCascades != null && hibernateCascades.length > 0 ) { +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 3190) hibernateCascadeSet.addAll( Arrays.asList( hibernateCascades ) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3191) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3192) +165f2e5f7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2009-12-22 18:07:38 +0000 3193) if ( orphanRemoval ) { +165f2e5f7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2009-12-22 18:07:38 +0000 3194) hibernateCascadeSet.add( CascadeType.DELETE_ORPHAN ); +165f2e5f7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2009-12-22 18:07:38 +0000 3195) hibernateCascadeSet.add( CascadeType.REMOVE ); +165f2e5f7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2009-12-22 18:07:38 +0000 3196) } +3d911bd65 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-08 13:22:43 +0000 3197) if ( forcePersist ) { +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 3198) hibernateCascadeSet.add( CascadeType.PERSIST ); +016a02ff5 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-27 18:58:28 +0000 3199) } +165f2e5f7 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Scott Marlow 2009-12-22 18:07:38 +0000 3200) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3201) StringBuilder cascade = new StringBuilder(); +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 3202) for ( CascadeType aHibernateCascadeSet : hibernateCascadeSet ) { +4a9d8dcf0 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-17 21:14:07 +0000 3203) switch ( aHibernateCascadeSet ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3204) case ALL: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3205) cascade.append( "," ).append( "all" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3206) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3207) case SAVE_UPDATE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3208) cascade.append( "," ).append( "save-update" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3209) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3210) case PERSIST: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3211) cascade.append( "," ).append( "persist" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3212) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3213) case MERGE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3214) cascade.append( "," ).append( "merge" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3215) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3216) case LOCK: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3217) cascade.append( "," ).append( "lock" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3218) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3219) case REFRESH: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3220) cascade.append( "," ).append( "refresh" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3221) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3222) case REPLICATE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3223) cascade.append( "," ).append( "replicate" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3224) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3225) case EVICT: +ba3639a25 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2009-12-10 09:32:25 +0000 3226) case DETACH: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3227) cascade.append( "," ).append( "evict" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3228) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3229) case DELETE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3230) cascade.append( "," ).append( "delete" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3231) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3232) case DELETE_ORPHAN: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3233) cascade.append( "," ).append( "delete-orphan" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3234) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3235) case REMOVE: +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3236) cascade.append( "," ).append( "delete" ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3237) break; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3238) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3239) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3240) return cascade.length() > 0 ? +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3241) cascade.substring( 1 ) : +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3242) "none"; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3243) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3244) +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3245) public static FetchMode getFetchMode(FetchType fetch) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3246) if ( fetch == FetchType.EAGER ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3247) return FetchMode.JOIN; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3248) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3249) else { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3250) return FetchMode.SELECT; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3251) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3252) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3253) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3254) private static HashMap buildLocalGenerators(XAnnotatedElement annElt, MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3255) HashMap generators = new HashMap(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3256) TableGenerator tabGen = annElt.getAnnotation( TableGenerator.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3257) SequenceGenerator seqGen = annElt.getAnnotation( SequenceGenerator.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3258) GenericGenerator genGen = annElt.getAnnotation( GenericGenerator.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3259) if ( tabGen != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3260) IdentifierGeneratorDefinition idGen = buildIdGenerator( tabGen, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3261) generators.put( idGen.getName(), idGen ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3262) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3263) if ( seqGen != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3264) IdentifierGeneratorDefinition idGen = buildIdGenerator( seqGen, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3265) generators.put( idGen.getName(), idGen ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3266) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3267) if ( genGen != null ) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3268) IdentifierGeneratorDefinition idGen = buildIdGenerator( genGen, context ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3269) generators.put( idGen.getName(), idGen ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3270) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3271) return generators; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3272) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3273) +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3274) public static boolean isDefault(XClass clazz, MetadataBuildingContext context) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3275) return context.getBuildingOptions().getReflectionManager().equals( clazz, void.class ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3276) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3277) +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3278) /** +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3279) * For the mapped entities build some temporary data-structure containing information about the +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3280) * inheritance status of a class. +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3281) * +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3282) * @param orderedClasses Order list of all annotated entities and their mapped superclasses +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3283) * +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3284) * @return A map of {@code InheritanceState}s keyed against their {@code XClass}. +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3285) */ +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 3286) public static Map buildInheritanceStates( +5ee9ba361 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-01-26 12:57:01 +0000 3287) List orderedClasses, +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3288) MetadataBuildingContext buildingContext) { +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3289) ReflectionManager reflectionManager = buildingContext.getBuildingOptions().getReflectionManager(); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3290) Map inheritanceStatePerClass = new HashMap( +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3291) orderedClasses.size() +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3292) ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3293) for ( XClass clazz : orderedClasses ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3294) InheritanceState superclassState = InheritanceState.getSuperclassInheritanceState( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3295) clazz, inheritanceStatePerClass +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3296) ); +9caca0ce3 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2015-03-10 16:55:51 +0000 3297) InheritanceState state = new InheritanceState( clazz, inheritanceStatePerClass, buildingContext ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3298) if ( superclassState != null ) { +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3299) //the classes are ordered thus preventing an NPE +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3300) //FIXME if an entity has subclasses annotated @MappedSperclass wo sub @Entity this is wrong +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3301) superclassState.setHasSiblings( true ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3302) InheritanceState superEntityState = InheritanceState.getInheritanceStateOfSuperEntity( +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3303) clazz, inheritanceStatePerClass +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3304) ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3305) state.setHasParents( superEntityState != null ); +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3306) final boolean nonDefault = state.getType() != null && !InheritanceType.SINGLE_TABLE +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3307) .equals( state.getType() ); +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3308) if ( superclassState.getType() != null ) { +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3309) final boolean mixingStrategy = state.getType() != null && !state.getType() +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3310) .equals( superclassState.getType() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 3311) if ( nonDefault && mixingStrategy ) { +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 3312) LOG.invalidSubStrategy( clazz.getName() ); +129c0f134 hibernate-core/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Sanne Grinovero 2011-10-15 00:40:38 +0000 3313) } +025b3cc14 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-12-11 19:14:01 +0000 3314) state.setType( superclassState.getType() ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3315) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3316) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3317) inheritanceStatePerClass.put( clazz, state ); +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3318) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3319) return inheritanceStatePerClass; +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3320) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3321) +153ad753e annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2010-03-04 21:55:10 +0000 3322) private static boolean hasAnnotationsOnIdClass(XClass idClass) { +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 3323) // if(idClass.getAnnotation(Embeddable.class) != null) +252299cfe annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Emmanuel Bernard 2010-02-04 17:54:05 +0000 3324) // return true; +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3325) +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3326) List properties = idClass.getDeclaredProperties( XClass.ACCESS_FIELD ); +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3327) for ( XProperty property : properties ) { +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3328) if ( property.isAnnotationPresent( Column.class ) || property.isAnnotationPresent( OneToMany.class ) || +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3329) property.isAnnotationPresent( ManyToOne.class ) || property.isAnnotationPresent( Id.class ) || +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3330) property.isAnnotationPresent( GeneratedValue.class ) || property.isAnnotationPresent( OneToOne.class ) || +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3331) property.isAnnotationPresent( ManyToMany.class ) +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3332) ) { +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3333) return true; +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3334) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3335) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3336) List methods = idClass.getDeclaredMethods(); +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3337) for ( XMethod method : methods ) { +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3338) if ( method.isAnnotationPresent( Column.class ) || method.isAnnotationPresent( OneToMany.class ) || +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3339) method.isAnnotationPresent( ManyToOne.class ) || method.isAnnotationPresent( Id.class ) || +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3340) method.isAnnotationPresent( GeneratedValue.class ) || method.isAnnotationPresent( OneToOne.class ) || +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3341) method.isAnnotationPresent( ManyToMany.class ) +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3342) ) { +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3343) return true; +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3344) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3345) } +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3346) return false; +2176af114 annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java (Hardy Ferentschik 2009-10-27 15:05:44 +0000 3347) } +7337743c9 annotations/src/java/org/hibernate/cfg/AnnotationBinder.java (Steve Ebersole 2008-10-28 18:41:10 +0000 3348) }