Это было просто выпущено также: http://codeplex.com/SnippetDesigner
Разработчик Отрывка является плагином, который улучшает IDE Visual Studio для разрешения более богатого и более продуктивного опыта фрагмента кода...
Функции
А редактор Snippet, интегрированный в IDE, который поддерживает C#, Visual Basic, JavaScript, HTML, XML и получает доступ SQL
- к нему путем открытия любого .snippet файла или движения в Файл-> Новый-> Файл-> Файл
- Фрагмента кода, Это использует собственный редактор кода Visual Studio так, чтобы можно было записать отрывки в том же enviorment, который Вы пишете своему коду.
- Это позволяет Вам легко отметить замены удобным меню правой кнопки.
- Это отображает свойства отрывка в окне свойств Visual Studio...
окно инструментов Проводника Отрывка А для поиска отрывков на компьютере.
- Это расположено при Представлении-> Другой Windows-> Проводник Отрывка
- , Это окно инструментов содержит окно предварительного просмотра кода, которое позволяет для заглядывания в отрывке для наблюдения то, что это, не открывая файл.
- Поддерживает индекс отрывков на Вашем компьютере для быстрого поиска.
- Обеспечивает быстрый способ найти, что фрагмент кода использует, редактирует или удаляет...
У меня была такая же проблема. И решение, которое я нашел, - пометить поля первичного ключа как невставляемые и не обновляемые. Ваше физическое лицо должно выглядеть так:
@Entity
@Table(name = "PERSON")
@IdClass(PersonPK.class)
public class Person
implements Serializable {
@Id
@Column(insertable = false, updatable=false)
private String owner;
@Id
private String personid;
@Id
@Column(insertable = false, updatable=false)
private String comp_id;
@ManyToOne
@JoinColumns({
@JoinColumn(name = "owner", referencedColumnName = "OWNER"),
@JoinColumn(name = "comp_id", referencedColumnName = "COMP_ID")
})
private Company company;
private String p_fname;
private String p_sname;
...and standard getters/setters...
}
Я сделал это так, чтобы аннотировать поля в классе PK, как если бы они были в сущности.
Тогда в сущности нет полей PK класс держится. Если вы хотите, вы можете реализовать геттеры, которые проходят через
class Person {
.....
private PersonPK pk;
@Id
public PersonPK getPk() { return pk; }
@Transient
public String getOwner() {
return pk.getOwner();
}
....
}
. PersonPK должен быть сериализуемым и аннотированным @Embeddable
@Embeddable
class PersonPK implements Serializable {